设有定义:int x=2;,以下表达式中,值不为6的是______。 A. x*=x+1 B.

设有定义:intx=2;,以下表达式中,值不为6的是______。A.x*=x+1B.设有定义:intx=2;,以下表达式中,值不为6的是______。A.x*=x+1B... 设有定义:int x=2;,以下表达式中,值不为6的是______。
A. x*=x+1
B. 设有定义:int x=2;,以下表达式中,值不为6的是______。
A. x*=x+1
B. x++,2*x
C. x*=(1+x)
D. 2*x,x+=2
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
xoaxa
2018-06-24 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3446万
展开全部
设有定义:int x=2;,以下表达式中,值不为6的是_A_。
A. x*=x+1;//理由:*=优先级低于+,所以经过x*=x+1运算后表达式的值为9,不是6。
B. x++,2*x
C. x*=(1+x)
D. 2*x,x+=2
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幻形术
2018-06-25 · TA获得超过1261个赞
知道小有建树答主
回答量:994
采纳率:81%
帮助的人:259万
展开全部

网页链接

看上面的标准解释,我摘几句吧:

A sequence point defines any point in a computer program's execution at which it is guaranteed that all side effects(什么是副作用?网页链接) of previous evaluations will have been performed, and no side effects from subsequent evaluations have yet been performed.

In C and C++,sequence points occur in the following places. (In C++, overloaded operators act like functions, and thus operators that have been overloaded introduce sequence points in the same way as function calls.)

  • Between evaluation of the left and right operands of the && (logical AND), || (logical OR) (as part of short-circuit evaluation), and comma operators

选项B就是 comma operator,即逗号操作符,逗号操作符会有evaluation sequence point(运算顺序点)。

++运算就是side-effect。顺序点就会要求其前面的所有运算都先算完,再执行后面的运算。

所以选项B等价于  "x+=1,2*x",结果是6.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
itunes0004
2018-06-24 · TA获得超过4045个赞
知道大有可为答主
回答量:2685
采纳率:69%
帮助的人:519万
展开全部
D
2 * x 并没有改变x的值,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式