C语言里的x=(--m==n++)?--m:n++;怎么理解,求速度 5
4个回答
展开全部
判断(--m==n++)是否为0,非0x的值取--m,如果m原值为5,则此时x为3,因为自减了两次;若为0,则x的值取n++,如果n原值为5,则此时x为6,n为7.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种是 著名的 “带副作用 表达式”,不同编译器 对它的 解释 不一样,C/C++标准对它的值没有规定,因此其值是不可确定的
这种 题目 ,只有低水平的 计算机等级考试教材估计才力推,要想学得好,早点离这种题目远点
这种 题目 ,只有低水平的 计算机等级考试教材估计才力推,要想学得好,早点离这种题目远点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
追问
我让你看看题目吧。
m=20;n=6;
x=(- -m==n++)?- -m:++n;
b=m++;
最后是输出b的值,答案是19
其中我不明白的是(- -m==n++)这个部分,我的理解是,运行时,m先自减,则m=19,n是运行过后才自加故n不变,n=6.,这样两边不相等,应该为假,则取++n,这样怎么会关联到m?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-11 · 知道合伙人数码行家
关注
展开全部
如果--m==n++成立,返回--m,否则返回n++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询