C++中的const

来源:百度知道 编辑:UC知道 时间:2024/07/07 02:13:25
void main()
{
int i=0;
const int * nptr=&i;//这里保护的应该是指针nptr指向的内存空间:变量i
i=1;
cout<<* nptr;//为什么i的值还可以改变?const没起到作用吗?
}
===============================================================
249281713 - 千总 五级 你骗我!
int i=0;
int * const nptr=&i;//这个才是保护了整形指针指向的地址空间没有变化
nptr++;//编译不能通过,因为nptr指向的地址空间被保护

const只是一个语法作用, 它禁止你写 *nptr = xxxx 这样的语句而已

它实际上不保护任何内存单元, 跟变量i能不能改写毫无关系

const 是保护了 整形指针指向的地址空间没有变化,但是空间里面的内容是可以变化的,所以const是有用的。

是不能用指针来改变,如就不行
*nptr = 1;