C语言里的x=(--m==n++)?--m:n++;怎么理解,求速度 5

 我来答
智遴
2011-10-11
知道答主
回答量:11
采纳率:0%
帮助的人:4.5万
展开全部
判断(--m==n++)是否为0,非0x的值取--m,如果m原值为5,则此时x为3,因为自减了两次;若为0,则x的值取n++,如果n原值为5,则此时x为6,n为7.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arongustc
科技发烧友

2011-10-11 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5994万
展开全部
这种是 著名的 “带副作用 表达式”,不同编译器 对它的 解释 不一样,C/C++标准对它的值没有规定,因此其值是不可确定的
这种 题目 ,只有低水平的 计算机等级考试教材估计才力推,要想学得好,早点离这种题目远点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dennis_liu_tx
2011-10-11
知道答主
回答量:27
采纳率:0%
帮助的人:20.8万
展开全部
里面用到了 ? :运算符
(--m == n++)判断是否为真,
若为真,则值为--m,
否则,值为n++

这里面还考察了自加(减)运算符写在前面和后面的区别
追问
我让你看看题目吧。
m=20;n=6;
x=(- -m==n++)?- -m:++n;
b=m++;
最后是输出b的值,答案是19
其中我不明白的是(- -m==n++)这个部分,我的理解是,运行时,m先自减,则m=19,n是运行过后才自加故n不变,n=6.,这样两边不相等,应该为假,则取++n,这样怎么会关联到m?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FoolRabbit编程
2011-10-11 · 知道合伙人数码行家
FoolRabbit编程
知道合伙人数码行家
采纳数:619 获赞数:3805
毕业于苏州大学,4年编程经验,对WPF有研究。

向TA提问 私信TA
展开全部
如果--m==n++成立,返回--m,否则返回n++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式