更新:我认为我的考试成绩不错;感谢大家的帮助,希望您度过愉快的一周(结束)!
我目前正在修改我的 C++ 考试指针,遇到了一个我仍然无法理解的示例。
考虑以下(部分)代码:
int x = 17;
int *ptr = &x;
cout<<*&ptr<<" "<<&ptr<<" "<<ptr<<" "<<*ptr<<endl;
我知道 &ptr
和 ptr
是一样的,即打印变量 x
的地址。我也明白 *ptr
打印出变量 x
中的值,即 17。
但是,我无法理解第一个,即 *&ptr
。它打印一个地址,但我不知道它指向哪个。我试过研究它,但我没有找到太多。 *&
组合代表什么?
最佳答案
ptr
和 &ptr
不相同。 &ptr
是 ptr
的地址(即指向指针的指针)。
*
是取消引用运算符 - 它返回指针指向的值。因此,如果您取消引用 &ptr
,您是在请求“ptr
的地址指向的值”,或者 ptr
( ,当然反过来就是x
的地址)。
关于c++ - *& 关于 C++ 中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75113360/