gpt4 book ai didi

c++ - 关于指针指针的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:31 31 4
gpt4 key购买 nike

double a=4;
double *x=&a;
double **y=&x;
cout <<x<<endl<<(y+1)<<endl<<(y+1)[0]<<endl<<y[1];

如果我运行上面的 C++ 代码,输出将是:

0x28fef0

0x28fef0

0

0

我知道x的值是变量a的地址,y的值是变量x的地址。但是x=y+1怎么来的呢? y+1、(y+1)[0] 和 y[1] 是什么意思?感谢您的帮助!

最佳答案

how come x=y+1?

偶然。您的编译器恰好在内存中布置了 xy,这样一个紧跟在另一个之后。它没有义务这样做,因此您不能依赖这种行为。

请注意取消引用 y+1,例如通过 (y+1)[0]y[1]*(y+1),还有undefined behaviour .

关于c++ - 关于指针指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41653753/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com