帮忙理解+++与---的使用

来源:百度知道 编辑:UC知道 时间:2024/06/21 11:13:25
我写了个程序:
main()
{int a=3,b=5,c;
c=a*b+++b;
printf ( “c=%d”, c);}
运行的结果是20,但是我预计的结果是21,【c=(a*(b++))+b】
a*b++结果是15,之后b变成6,二者相加得21.

c++的标准:等号后的优先级是从右至左
解:
先引用b=5
再执行b++
即3*5+5=20
运行结束b=6

++的效果是等到该条语句执行完毕后才会自加的。
因此,要等到a*b+++b执行完,b才会变为b+1的。那是一条完整的语句,不能分割开的。

那如果是c=(a*b+(++b))呢,好像可以这么理解的吧?这样好像不管怎样++b都是6, 而前面的a*b=15,这样加起来就不是20,而是21了