C语言里x+=x++应如何理解,和x+=++x有什么不同?
4个回答
展开全部
这是变量的自加运算和赋值运算,赋值运算符的优先级在此低于变量的自增。
要搞清运算的优先关系
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]
要搞清运算的优先关系
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]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题,就是
X++和++x的问题。
首先
x++:
就是先赋值,后
自身(x)加1
而
++x:是
先给自身(x)加1
,后把值赋给左边变量。
打个比方说(写主要的吧):
int
x,
i
=
5;
x
=
i++;
//
x
的值是
5,
i的值是
6.
x
=
++i;
//
x的值是
6,i的值也是6.
纯手工。
X++和++x的问题。
首先
x++:
就是先赋值,后
自身(x)加1
而
++x:是
先给自身(x)加1
,后把值赋给左边变量。
打个比方说(写主要的吧):
int
x,
i
=
5;
x
=
i++;
//
x
的值是
5,
i的值是
6.
x
=
++i;
//
x的值是
6,i的值也是6.
纯手工。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
y=++x+(x++);
<=>
y=(++x)+(x++);
y=x+++(x++);
<=>
y=(x++)+(x++);
(++x)
和
(x++)
都会引起后面的x增加1;但是它们的取值不同,++x
值比
x++
大1。
<=>
y=(++x)+(x++);
y=x+++(x++);
<=>
y=(x++)+(x++);
(++x)
和
(x++)
都会引起后面的x增加1;但是它们的取值不同,++x
值比
x++
大1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询