C++中const加强

demo

// C语言中的const是一个冒牌货
int main()
{
	// 好像a是一个常量
	const int a = 10;
	int *p = NULL;
	p = (int *)&a;
	*p = 20; // 间接赋值

	printf("a:%d
", a);
	// C语言中显示a被修改了
	// C++则显示a还是10,没有改变

	return 0;
}

C++中的const是一个真正的常量

解释:

C++编译器对const常量的处理。

当碰见常量声明时,在符号表中放入常量。

编译过程中若发现使用常量则直接以符号表中的值替换。

编译过程中若发现对const使用了extern或者&操作符,则给对应的常量分配存储空间(兼容C)。


原文地址:https://www.cnblogs.com/zhangyaoqi/p/4591643.html