OK,首先是思维导图
一、字面常量:略
二、const修饰的常变量
如下所示:
#includeint main() { const int num = 2022; printf("num=%dn", num); return 0; }
这里的num即是const定义的常变量,若将代码改为:
#includeint main() { const int num = 2022; num=2021; printf("num=%dn", num); return 0; }
则会导致报错,因为num变量已经被定义为常变量,不能再次修改,报错信息如下:
注意:虽然已经定义为常变量,但是它的本质仍是变量,所以,如下所示的代码段:
const int n = 10;
int arr[n]={0};
部分编译器在执行时会报错,这是因为n的本质属性未变化(但是部分编译器已经接受这样的方式,如:vs2022版本)
三、#define定义的标识符常量
如下所示
#include#define MAX 10000 int main() { int n = MAX; printf("n=%d", n); return 0; }
MAX即是#define定义的常量,打印的结果为:
可以看到,n的输出就是MAX的值,可以得出,我们的MAX已经成为了常量,但是我们将代码做如下修改:
#include#define MAX 10000 int main() { int n = MAX; MAX = 20000; printf("n=%d", n); return 0; }
编译器会报错,报错信息如下:
所以说,被#define定义的标识符常量无法再次更改
四、枚举常量
如下所示
#includeenum Sex { male, female, secret }; int main() { enum Sex s = male; printf("%d", male); printf("%d", female); printf("%d", secret); return 0; }
这里我们定义了性别Sex这个量,这个量由男,女,保密三个部分组成,输出结果为:
枚举常量,默认是从0开始的,从上到下依次是0.1.2,常量不可更改,说的是这样:
#includeenum Sex { male, female, secret }; int main() { enum Sex s = male; male = 3; printf("%d", male); printf("%d", female); printf("%d", secret); return 0; }
报错信息为:
必须为左值,因此,枚举常量也不可变
相关代码我会同步发送到我的码云上,欢迎交流与学习:C语言学习之路: C语言学习当中做的相关代码 - Gitee.com



