通过一个小程序认识C中的const关键字
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { int a=0; const int b=20; //b = 2;具有了只读属性,值不能修改 //a = b;//const是一个安全性高的属性,安全性高的变量可以给安全性低的变量赋值 //printf("a:%d\n", a); //换句话说1.const变量可以做为右值,但不能作为左值 //b=a; 错误!!! //2.const常量必须要初始化.所以下语句会报错 //const int c; //3.如何在另一个.c文件中引用const常量? //使用关键字 extern //extern int j; //extern int q=10;错误!!!不能重定义 //4.const 和 define 定义常量的区别 //const 只会在内存中开辟一次内存空间 //define 会为每一个常量开辟一个内存空间 //C中的const是一个冒牌货!!! //我们可以通过强制类型转换来修改一个const常量 int *p = (int *)&b; *p = 50; int c = b; printf("b is in %p , b:%d\n", &b,b); printf("p:%p , *p:%d\n", p, *p); printf("c:%d\n", c); //我们通过断电调试以上程序可以看到,此时const常量b的值被修改为50; //const在C中没有用处,最大的用处就是作为注释 return 0; } //指向常量的指针和常指针 /* const char *p; //指向常量的指针 *p的值不能修改 char * const p; //常指针 p的值不能修改 */