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

 我来答
我默吧1F
推荐于2017-09-01 · TA获得超过392个赞
知道小有建树答主
回答量:302
采纳率:100%
帮助的人:343万
展开全部
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))
更多追问追答
追问
第一行是什么意思
追答
第一行,如果初学,当成固定格式就可以。

其实这个是将c的标准输入输出函数等包含进来,这样,你就可以用printf等标准输入输出。
stdio是standard input output的缩写
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ebe1e4f3
2015-05-04 · TA获得超过1.3万个赞
知道大有可为答主
回答量:9245
采纳率:52%
帮助的人:3655万
展开全部
&(*p)就是&a,是取a的地址,*(&a)就是a,即取a的值
图中程序输出70
追问

追答
sorry,我忽略了宏展开时的问题,宏展开是这样的
t=(a+b)>(c+d)?(a+b):(c+d)*10
也就是t=7>6?7:6*10
也就是t=7>6?7:60
所以结果是7。不好意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式