我是在Python之后开始学习Cpp的,所以有些结果对我来说并不是很明显。
我有这个代码:
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int *b = &a;
b += 1;
cout<<b;
return 0;
}
并且每次返回不同的值,例如 0x7fff0dabe070。
我知道这个 0x 表示十六进制数字,但为什么它每次不只返回 11 或至少返回相同的数字?
为了获得预期的结果,你应该写
int a = 10;
int *b = &a;
*b += 1;
cout<<*b;
否则在此声明中
b += 1;
在这个语句中使用了指针 ardithmetkic 和
cout<<b;
指针运算后输出的是指针中存储的对象a后面的内存地址
要获取指针所指向的对象的值,您需要取消引用该指针。