C语言中花里胡哨的赋值运算

126 阅读1分钟

a += 2 ==> a=a+2 a -= 2 ==> a=a-2 a = 2 ==> a=a2 a /= 2 ==> a=a/2 a %= 2 ==> a=a%2 a++ ==> a=a+1 a-- ==> a=a-1

只对a来讲,a++和++a都是a=a+1 而当a++或++a赋给别的变量时,会出现区别 例如 int a=1,b; 当 b=++a时, a自然会加一, 而b会获得a加一之后的值,即2; 当 b=a++时, a同样会加一,得二, 此时b会获得a加一之前的值,即1。

还有一种神仙操作: a=a++ 听网课讲得是此时a又等于2,又等于1,会变成未定义状态。 而在Devc++上实验发现输出的始终是1. 同时,a=++a输出a=2 这是为什么呢?