前加加(++a)
函数在调用时,参数会从右到左依次入栈(先入后出的存储结构),前加加没有备份,后加加会备份,出栈时,有备份打印备份,无备份打印真值
注意:这里真值是指运算结果后的那个最终的值,如果没有备份的真值都是它,不管自己当前算出来的真值是多少
int a = 10;
printf("%d %d %d %d",a++,++a,a++,++a);
真值 | 备份 | |
a++ | 14 | 13 |
++a | 13 | |
a++ | 12 | 11 |
++a | 11 |
输出结果为13 14 11 14
后加加(a++)
int a = 10;
printf("%d %d %d %d",++a,a++,++a,a++);
输出结果为14 12 14 10
真值 | 备份 | |
++a | 14 | |
a++ | 13 | 12 |
++a | 12 | |
a++ | 11 | 10 |