文字量 和const常量以及变量的区别
const int *p = &256;//错误
const int w = 8;
const int *q = &w;//可以
请问这是为什么,文字量和const常量以及变量的什么本质区别导致了这种情况的产生呢
[解决办法]
1 文字常量本身不保存,没有地址,所以 const int *p = &256;
没有地址,却要获取地址,自然出错
2 const int w = 8; 这是一个常量,但是有内存分配,对应的也有一个常量名字w,你可以通过获取w的地址得到指针
const int *p = (int *)256; 这个的意义和 const int *p = &256; 是完全不同的
前者使得 p 指向一个地址为256的空间,
后者是要获得 256 这个值的地址。