%p, b 才是输出地址,%d, *b是输出值。
不知道你这个问题是否已经解决, 如果还没有解决的话:回答:
这个问题的出现是因为你的对指针变量b的地址有了误解。指针变量b本身就是一个地址,而不是指向地址的指针。所以,你输出的是b变量本身的地址,而不是指向a变量的指针。
解决方案:
需要使用&操作符来获取a变量的地址,然后将其赋值给b指针变量。示例代码如下:
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int* b = &a;
cout << "a变量的地址:" << &a << endl;
cout << "b指针变量的值:" << b << endl;
return 0;
}
输出为:
a变量的地址:0x61ff0c
b指针变量的值:0x61ff0c
可以看到,现在b指针变量的值等于a变量的地址了。