我有这段代码..
#include <iostream>
int main()
{
int r = 5;
const int * rptr= &r;
*rptr++; // undefined value (trash)
*rptr=3; // error
std::cout<<*rptr<<" "<<r<<std::endl;
rptr = new int (6);
std::cout<<*rptr<<" "<<r<<std::endl;
return 0;
}
为什么当我尝试为指针指向的常量整数分配一个新值时它会显示错误,但当我尝试增加值时却没有。
当我增加*rptr
它时,它为它分配了一个未定义的值,所以我试图检查两者是否都指向同一个地址并且它们确实如此。
这是前面代码的输出,但没有包含错误的行:
-1079235284 5
6 5
在 Linux x86 机器上使用 g++4.8