const定义的变量的值可以改变吗?

用指针居然可以修改const常量的值

关于const

"const"在嵌入式C语言中为建议性的,尽量保证其值不变,并非强制性的。话不多说,上程序吧:

#include
int main()
{
     
	const int a = 0x12345678;
	int b = 0x11223344;
	int *p = &b;
	p[1] = 0x100;
	//*(p+1) = 0x100;
	printf("the a is: %x\n",a);
	
	return 0;
}

在Linux系统下gcc编译后的运行结果如下:

在这里插入图片描述

你有想明白吗?主要和内存分布有关。。。就是编译器分配内存的方式,然后根据b的地址就可以找到a的地址,进而改变其值。

你可能感兴趣的:(Linux,嵌入式,c语言)