C 语言中的关键字还是挺多的,比如经常看的类型关键字,如 int、char、float、struct、union、enum等;判断结构和循环结构的关键字,if、else、for、while等等;还有类型定义关键字 typedef。
const 用来修饰变量的,让普通的变量产生特殊的意义。
1const
const 意为常量,在C语言中表示为常量修饰符。
当一个变量带上 const 关键字,那么这个变量就成了一个常量。
常量是不可更改的变量,即在一开始定义后,就不可以再直接修改了。且常量在定义的同时就要进行初始化,否则就是错误的。
例如,将一个变量 a 通过 const 定义为常量,并给它初始化一个值为 1。后面想通过赋值运算符来修改常量 a 的值,就不能了。
const a = 1;
a = 2; // 这种做法是错误的
那么,常量的值就一定不能修改吗?
也不一定,C 语言中有一个二五仔,指针。你说不可能的事,我偏偏就要把它变成可能。
#include<stdio.h>
int main(){
const int a = 1;
printf("常量a的值为%d ", a);
int *pa = (int*)&a;
*pa = 99;
printf("常量a的值为%d", a);
return 0;
}
运行结果:常量a的值为1 常量a的值为99
需要注意的是,当将常量 a 的地址赋给指针变量 pa 时,必须使用类型强转。因为在 C 语言当中,认为 const 是更广泛的类型限制,优先级更高。
|