网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

这篇文章主要为大家介绍了C语言常量和字符串,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

contenteditable="true" data-cke-enter-mode="2" data-cke-saved-name="_label0" data-cke-widget-data="%7B%22url%22%3Anull%2C%22text%22%3A%22%5Cn%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease1.9.5%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DLA92%22%2C%22id%22%3A%22Bm1tyF-1639452519575%22%2C%22classes%22%3Anull%7D" data-cke-widget-editable="text" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-link-icon="https://csdnimg.cn/release/blog_editor_html/release1.9.5/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=LA92" data-link-title=" " data-widget="csdnlink" title=" " name="_label0">

常量种类

C语言中,我们常使用的常量有以下几种:

  • 字面常量

  • const常变量

  • #define定义的标识符常量

  • 枚举常量

代码如下

#include<stdio.h>
enum { //使用enum来建立枚举常量
    papa,//不赋值默认从0开始,如若赋值,从此依次递增
    mama,
    me,
    familynumber
};
int main() {
    3.1415926;//普通的字面常量
    const int a = 100;//定义const常量
    printf("a=%d\n", a);//a被const定义,变得不可修改
#define T 999
    printf("T=%d\n", T);//使用宏定义常量T(既define的标识符常量)  
    printf("familynumber=%d", familynumber);//枚举常量的应用,打印出一个整形
    return 0;
}


在用const定义一个常变量后,如仍然给这个常变量赋值,将会出现以下情况 

在这里插入图片描述

注意!!

此时,此常变量既不是变量也不是常量!

因为,如果我们用此常变量定义一个数组的大小时,系统也会报错

在这里插入图片描述

https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease1.9.5%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DLA92%22%2C%22id%22%3A%228MBPXz-1639452519524%22%2C%22classes%22%3Anull%7D" data-cke-widget-editable="text" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-link-icon="https://csdnimg.cn/release/blog_editor_html/release1.9.5/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=LA92" data-link-title=" " data-widget="csdnlink" title=" " name="_label1">

字符串

C语言中,用char定义字符类型数据变量;

我们知道了例如'a',是一个字符,

那么什么是字符串呢?

其实啊,字符串就是多个字符。

“Hello World!”

这就是一行简单的字符串。

字符串的结束标志

char arr1[] = {"abcd"};
    char arr2[] = {'a','b','c','d'};
    char arr3[] = {'a','b','c','d','\0'};
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);


此时打印出结果为 

在这里插入图片描述

arr2里面有四个字符,与arr3相比,最后缺乏了结束标志\0;

所以出现了经典的烫烫烫烫,这是因为缺乏结束标志,就会导致数据溢出;

那为什么arr1没有问题呢?

因为arr1是由字符组成的字符串,字符串的最后,隐藏有一个结束标准\0,只不过我们看不到罢了~

关于字符串的长度

我们之前了解到,想要得到某个数据类型占据了多少内存,

得用到库函数 sizeof,

那我们如果想要得到一个字符串的长度,那我们应该用什么呢?

strlen

int main() {
    printf("%d\n", strlen("abcd"));//使用库函数strlen得到字符串的长度,注意;\0不会被计算入内
    return 0;
}


如此,我们便得到了字符串的长度,4 


评论 0

暂无评论
0
0
0
立即
投稿
发表
评论
返回
顶部