i=a++,这个表达式怎么理解?(i=a)++,还是i=(a++)?

问题描述:

i=a++,这个表达式怎么理解?(i=a)++,还是i=(a++)?

++是自增,优先级低于算数运算浮应是先把a赋予i,然后a自增1如果a=5,6-(--a)值是多少?怎么计算?举个例子 main() { int i =5; p=(i++)+(i++)+(i++)printf(“%d,%d”,p,i) }输出结果应是,先把三个i相加,然后i3次自增,也就是15 8如把上述i++改为++i就不一样了,先自增后运算,结果应为248,6-(--a)应等于2,a的值为4;而6-(a--)应等于1,a的值为46-(a--)等于1,那就证明括号里的值为5,a已经赋值为5,括号里怎么可能还为5?先运算后自减,a自减当然是4了6-(a--)等于1,那就证明括号里的值为5,a已经赋值为5,括号里怎么可能还为5?计算机是这样计算的: a=5 6-(a--)=6-5=1,也就是说计算机是直接将(a--)以5来计算,当算出该式子结果为1时,计算机计算a--,a--就是将a自减1,本来赋值为5的a,此时的值为4。因此输出的结果是1 、 41指的是6-(a--)的值是1,4指的是此时a的值为4谢谢谢谢。