OK,首先是思维导图
一、字面常量:略
二、const修饰的常变量
如下所示:
#include <stdio.h>
int main()
{
const int num = 2022;
printf("num=%d\n", num);
return 0;
}
这里的num即是const定义的常变量,若将代码改为:
#include <stdio.h>
int main()
{
const int num = 2022;
num=2021;
printf("num=%d\n", num);
return 0;
}
则会导致报错,因为num变量已经被定义为常变量,不能再次修改,报错信息如下:
注意:虽然已经定义为常变量,但是它的本质仍是变量,所以,如下所示的代码段:
const int n = 10;
int arr[n]={0};
部分编译器在执行时会报错,这是因为n的本质属性未变化(但是部分编译器已经接受这样的方式,如:vs2022版本)
三、#define定义的标识符常量
如下所示
#include <stdio.h>
#define MAX 10000
int main()
{
int n = MAX;
printf("n=%d", n);
return 0;
}
MAX即是#define定义的常量,打印的结果为:
可以看到,n的输出就是MAX的值,可以得出,我们的MAX已经成为了常量,但是我们将代码做如下修改:
#include <stdio.h>
#define MAX 10000
int main()
{
int n = MAX;
MAX = 20000;
printf("n=%d", n);
return 0;
}
编译器会报错,报错信息如下:
所以说,被#define定义的标识符常量无法再次更改
四、枚举常量
如下所示
#include <stdio.h>
enum 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,常量不可更改,说的是这样:
#include <stdio.h>
enum 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