const关键字的基本思想就是将一个变量变成常量,试图从语言设计者的角度去分析引入该关键字的动机。
通常的理解,const修饰的变量是不可修改的。显然并不是,const关键字在某种程度上来说只是一个面向编译器和程序员的幌子,并不能保证被修饰的内容的不变性。
const的部分用法:
-
const修饰局部变量,即声明一个局部常量
g++编辑器
#include <iostream>
using namespace std;
int main()
{
const int a = 3;
int *b = (int *)&a;
*b = 5;
cout << a << " , " << *b << endl;
return 0;
}
运行结果:
3 , 5
片面的理解,const确实很负责的保证了被修饰内容的不变性,在一定程度上使得con_var1变成了一个常量。但是,并没有实现保证con_var1在内存中的值不被修改。
gcc编辑器
int main()
{
const int a1 = 3;
int *b1 = (int *)&a1;
*b1 = 5;
printf("a = %d, *b1 = %d\n", a, *b1);
return 0;
}
运行结果:
a1 = 5, *b1 = 5