--事物的难度远远低于对事物的恐惧!
对于const关键字,在C进阶分析中,我们知道,const在C语言中有如下特性:
-const修饰的变量是只读的,其本质还是变量而,也就是只读变量(依旧可以通过别的手段修改const变量)
-const修饰的局部变量在栈上分配空间
-const修饰的全局变量或静态局部变量,在只读存储区分配空间
-const只在编译期有用,在运行期无用
在C语言中,const不能定义真正意义上的常量!
下边通过一个小例子先来初步感受下C与C++中,const的区别
#include<stdio.h>
int main()
{
const int i = 0;
int *p = (int *)&i;
*p = 5;
printf("i = %d\n", i);
return 0;
}
首先采用gcc编译器来编译,输出结果如下:
可以看到,我们用const修饰的变量i,值已经被改了,这说明C语言中的const并不能修饰为常量。
我们现在用g++来编译运行,输出结果为: