意外的输出 C++ [已关闭]

问题描述 投票:0回答:1

我是在Python之后开始学习Cpp的,所以有些结果对我来说并不是很明显。

我有这个代码:

#include <iostream>

using namespace std;

int main()
{
    int a = 10;
    int *b = &a;
    b += 1;
    cout<<b;

    return 0;
}

并且每次返回不同的值,例如 0x7fff0dabe070。

我知道这个 0x 表示十六进制数字,但为什么它每次不只返回 11 或至少返回相同的数字?

c++ pointers hex
1个回答
0
投票

为了获得预期的结果,你应该写

int a = 10;
int *b = &a;
*b += 1;
cout<<*b;

否则在此声明中

b += 1;

在这个语句中使用了指针 ardithmetkic 和

cout<<b;

指针运算后输出的是指针中存储的对象a后面的内存地址

要获取指针所指向的对象的值,您需要取消引用该指针。

© www.soinside.com 2019 - 2024. All rights reserved.