int *p=&a &(*p)和*(&a)分别代表什么意思 还有图片这个…

2025-06-21 09:31:15
推荐回答(2个)
回答1:

p是指针指向a。那么*p就是a的值,对其求地址就是a的地址,即&(*p)是a的地址
*(&a)就是对a求地址再求值,就是a的值

MAX的作用是求大值,在c语言,c++中,可以理解为直接丢进去
即t=(a+b)>(c+d)?(a+b):(c+d)*10,从这里看出因为*10的存在导致这个结果并不是我们想要的结果,如果c+d>=a+b的话,结果才有*10,否则只有a+b。因此,结果为t=7而并非t=70.所以这种做法是很不可取的。

因此,如果想要让这个结果变成我们需要的结果,要做如下改变

#define MAX(x,y) ( (x) > (y) ? (x) : (y))

回答2:

&(*p)就是&a,是取a的地址,*(&a)就是a,即取a的值
图中程序输出70