今天我们介绍的是C语言中的五大常量,分别是字面常量,const常量,#define定义的标识符常量,字符串常量以及枚举常量。以上的五大常量我都会依次介绍。
1、字面常量
字面常量也就是我们在程序中见到的数字,比如100,200之类,较为基础我们就简单带过,我们要重点了解下面的四种常量。
2、const常量
const是constant的缩写,也就是长期不变的常量。我们知道int a=10;作为一个全局变量,我们可以在之后的代码中直接通过int a=20;的方法直接修改a的值。而如果在Int a之前加一个const的话这个a=10的值也就不可再修改了。用于修饰一些不可能会改变的常量,比如一个人的生日,一个物品的生产日期等等不可能改变的量。
3、#define定义的标识符常量
在#include<stdio.h>声明之后我们可以用#define 常量名 常量名的值这样的格式定义一个标识符常量。举个例子:
#include<stdio.h>
#define BIRTHDAY 2004
int main(){
int arr[BIRTHDAY]={0};
return 0;
}
在这样的代码中,我们已经知道整型数组arr中如果BIRTHDAY不是一个常量的话,arr数组是无法运行的,所以可以看出,通过#define这种方法可以直接定义一个常量。(数组的详细知识我会在之后更新的博客中展开介绍)
4、枚举常量
在生活中有许多量是可以通过枚举表示的,举个例子,性别这个量,存在着男性,女性,未知性这三种常量。这样就可以通过枚举关键字enum来表示。代码如下:
#include<stdio.h>
enum Sex{
MALE,
FEMALE,
UNKNOWN};
int main(){
printf("%d %d %d\n",MALE,FEMALE,UNKNOWN);
return 0;
}
这样的代码输出的是0 1 2.为什么是这样?是因为在enum Sex这个枚举常量中电脑会自行把第一个元素MALE赋值为0,第二位赋值为1,以此类推,所以会输出成这个结果。
5、字符串常量
首先字符串用“”括住,单字符用‘’括住。在字符数组中,字符串会在结束时系统自带一个\0作为结尾,但如果时多个单字符组成的字符数组就不会有\0作为结束标识符。我们举个例子就懂了:
#include<stdio.h>
int main(){
char arr1[]="abc";
char arr2[]={'a,''b','c'};
printf("%s %s",arr1,arr2);
return 0;
}
这样的两个数组的打印结果是abc abc烫烫烫烫bc
显而易见,arr1的输出没有问题,但arr2的输出出现乱码。为什么会这样呢?就是我们刚刚提到的,在字符串类型的数组中,系统默认了“abc”的结束码‘\0’,而在多个单字符的数组中,系统无法自动给我们添加'\0'作为结束码,这就导致了我们的arr2无法结束,直至出现乱码。
如何去验证我们这个猜想?
我们可以printf("%d %d",sizeof()arr1),sizeof(arr2);来验证一下
输出的结果果然是4 3
这就证明了arr1中确实是有4个元素,也就是'\0'。
标签:常量,C语言,枚举,初识,arr2,数组,arr1,define From: https://blog.51cto.com/u_16352468/8316972