C语言里x+=x++应如何理解,和x+=++x有什么不同?

 我来答
完俊拔闻怿
2019-05-22 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:698万
展开全部
x
+=
x++

x
+=
++x执行顺序是一定的,跟编译器没有关系,这不是x
=
x++
+
++x
-
x++之类的问题;
首先x++

++x都是自增,也就是x的值加1,x++是在之后遇到的第一个顺序点后x的值加1;
而++x则是在表达式运算之前x的值加1
+=
的意思就是
“+=”
右边的表达式的值加上
“+=”
左边的变量的值的和,赋值给左边的变量
仵子濯说晓
2019-06-30 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:946万
展开全部
这是变量的自加运算和赋值运算,赋值运算符的优先级在此低于变量的自增。
要搞清运算的优先关系
x+=x++等价于x=x+(x++),x+=++x等价于x=x+(++x)。
x++就是先用x本身的值,再对x+1。++x就是先将x+1然后在用加1后的值(就是参与运算)。
例如:
x=2.
x+=x++的结果就是:x---[5]=x--[3]+(x++)---[2]
x+=++x的结果就是:x---[6]=x--[3]+(++x)---[3]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拓跋思涵宗珧
2019-10-29 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:734万
展开全部
这个问题,就是
X++和++x的问题。
首先
x++:
就是先赋值,后
自身(x)加1

++x:是
先给自身(x)加1
,后把值赋给左边变量。
打个比方说(写主要的吧):
int
x,
i
=
5;
x
=
i++;
//
x
的值是
5,
i的值是
6.
x
=
++i;
//
x的值是
6,i的值也是6.
纯手工。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
公孙妙珍潮誉
游戏玩家

2019-07-15 · 非著名电竞玩家
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:621万
展开全部
y=++x+(x++);
<=>
y=(++x)+(x++);
y=x+++(x++);
<=>
y=(x++)+(x++);
(++x)

(x++)
都会引起后面的x增加1;但是它们的取值不同,++x
值比
x++
大1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式