c++ 为什么两个输出结果不同?[已关闭]

g2ieeal7  于 2023-02-14  发布在  其他
关注(0)|答案(2)|浏览(144)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
9小时前关门了。
Improve this question

int* p= NULL;
    int** pp = &p;
    cout << &p << endl;
    cout <<*pp << endl;

我想两者的输出结果应该是一致的,但是第一个输出的是p的地址,第二个是00000000,我想知道为什么。

thtygnil

thtygnil1#

您弄错了,ppp的地址

int** pp = &p; // set pp to the address of p

但是*pppp所指向的任何东西的值。在本例中,它是p,其值为NULL
代码与此代码基本上没有什么不同

int x = 123;
int* px = &x;
cout << &x << endl;  // print address of x
cout << *px << endl; // print value of x i.e. 123

唯一的区别是原始值的类型(intint*)。

kiayqfof

kiayqfof2#

pp保存p的地址,因此打印pp,而不是*pp

相关问题