常量的分类:
1.字面常量
2.const修饰的常变量。
本质仍然是变量,但是具备了常属性。例如“
int n = 10;
这是一个变量,在程序中【a】仍然可以被赋予别的数值。但是,
const int a = 10;
这就变成了一个常变量,这使得【a】在程序中不可被修改,成为了一个只读值——在后续的程序中,可以使用【a】也可以打印【a】,但唯独不可以更改【a】的数值。
分享一个例程:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//常量的分类:
//1.字面常量
//const修饰的常变量
#define a 10//此处为第三种类型的常量
int main()
{
//int n = 10;
//const int a = 10;//一旦变量前加入了const修饰,那么【a】就变成了常变量。
int arr[a] = { 0 };//arr是个数组
printf("%d\n", arr);
return 0;
}
在上述例程中,定义一个数组arr,数组中的元素个数为10,
当我们采用
int n = 10;
去定义元素个数时,程序运行报错。
当我们再用以下这种方式去定义的时候
const int a = 10;
程序可以运行。
3.define定义的标识符常量
在这个例程中,采用
#define a 10
的方式来定义a也能收到同样的效果。
4.枚举常量
enum Sex//【enum】为枚举函数
{
//枚举的未来可能取值-三个枚举常量
male,
female,//枚举的元素之间用【,】隔开
secret//枚举的最后一个元素末尾没有符号
};//注意符号
int main()
{
//enum Sex s = male;//创建一个枚举变量【s】,【s】的取值范围是【Sex】内的三个枚举常量
printf("%d\n",male);
printf("%d\n",female);
printf("%d\n",secret);
return 0;
}
首先打印一下结果:
由此可见,枚举常量是默认被赋值的。这里可以在枚举函数处对枚举的元素赋初值。如下图所示:
注意:赋初值并不算改变常量的值。
困惑:
enum Sex s = male;//创建一个枚举变量【s】,【s】的取值范围是【Sex】内的三个枚举常量
这行代码有啥用???删了一样能跑。