小编plu*_*lus的帖子

增加一个常量指针

我有这段代码..

#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;
}
Run Code Online (Sandbox Code Playgroud)

为什么当我尝试为指针指向的常量整数分配一个新值时它会显示错误,但当我尝试增加该值时却没有。
当我增加*rptr它时,它为它分配了一个未定义的值,所以我试图检查两者是否都指向同一个地址,并且它们确实指向了相同的地址。

这是前面代码的输出,但没有包含错误的行:

-1079235284 5
6 5
Run Code Online (Sandbox Code Playgroud)

在 Linux x86 机器上使用 g++4.8

c++ g++ g++4.8

-2
推荐指数
1
解决办法
3813
查看次数

标签 统计

c++ ×1

g++ ×1

g++4.8 ×1