运行过穗轮程是这样的:先执行++a此时a=6,接着执行--a此时a=5。最后将a对应的存储单首族侍元的数值5送到cpu累加者吵器进行加法运算。为啥等价5*5的主要原因是编译成机器代码时传送的地址是a的地址,而取值时两个a存储的值是同一地点同一时刻取出来!不过有时也受编译环境的影响!
b=++a*--a
编译器 先氏唤计算 a= (--a), 得4,再计算 a = (++a) 得5
再把 b=++a*--a 变歼镇凯成旅桥 b = a * a; b=5*5, 得 25
++a是前置自加 --a是前置自减就是说先 计算++a的值 也就是a=a+1,是6! 而--a的耐穗值为4 ;理论上是这样 但是编译器会直昌源卜接去地址裂斗 就是 b=&a的值*&a的值 就是5*5 最后的25
++a=5+1=6
--a=6-1=5
5*5=25
我也不知道编译器是怎么想的,而且不同的编译器想法可能还不一样