int a=10;
int *p=&a;
Run Code Online (Sandbox Code Playgroud)
现在看&*p我们首先看*p哪个是10,然后看&10
哪个是地址10或地址a
在这种情况下,*&p我们首先查看地址p,然后查看该地址中的值,即10
但我明白这两个*&pvs&*p是一样的,为什么呢?
让我们画出你的变量:
+---+ +---+ | p| --> | 一个 | +---+ +---+
也就是说,p指向a。
现在,如果您&*p这样做,那么您首先取消p对 get 的引用a,然后您将获得 的地址a,这将为您留下一个指向 的指针a。
如果我们获取 的*&p地址来获取p指向的指针p,那么您可以取消引用该指针来获取p。这是一个指向a.
因此,虽然表达式执行不同的操作,但最终结果是相同的:指向 的指针a。
下降编译器可能什么都不做,因为解引用运算符*和地址运算符&一起总是会相互抵消,无论它们的顺序如何。
| 归档时间: |
|
| 查看次数: |
2960 次 |
| 最近记录: |