++或--的结合性的理解

来源:百度知道 编辑:UC知道 时间:2024/06/28 09:56:40
他的右结合性怎么理解的
例如
main()
{
int i=5,a;
a=-i++;/*与a=-++i结果为什么不一样*/
printf("%d\n",a)
一个是-5一个是-6
为什么?++的优先级是高于-的吗?
为什么会出现这个结果,是因为他的右结合性吗?
怎么理解呢

a=i++
是先把i的值 给a 然后在+1
a=++i
是先做+1 然后在给A

++i和i++
前者是先自增再运算
后者是先运算再自增(--i相同)

比如
i=5;
a = i++;
结果a=5;i=6
如果是
a=++i
结果就是a=i=6了

a=-i++;是先把-i的值赋给a,再自加。
而a=-++i;是i先自加,然后在把-i的值赋给a。