之前在运算符和表达式里面提及了一下i++之类自加自减的例子 到后面遇到了一道题 瞬间推翻了我之前的理解方式

//1.13 自增自减运算符(++,--)

#include<stdio.h>

int main(){

int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n",-i++);

printf("%d\n",-i--);

return 0;

}

之前我理解的也没有问题 只是我没有关注到i的情况

具体执行上述命令后对应printf的值和i的值

1.++i i自加1然后赋值给结果 所以输出为9 i此时自加为9

2.--i i自减1然后赋值给结果 所以输出为8 i此时自加为8

3.i++ i先赋值给结果再自加 所以输出为8 i此时自加为9

4.i-- i先赋值给结果再自减 所以输出为9 i此时自加为8

5.-i++ 运算优先级自右向左 故写为-(i++) i++=8 所以-i++ = -8 i = 9

6.-i-- 运算优先级自右向左 故写为-(i--) i--=8 所以-i++ = -9 i = 8

附上调试图

fy2iPf.png

最后修改:2021 年 08 月 14 日 03 : 09 PM
如果觉得我的文章对你有用,请随意赞赏
END
本文作者:
文章标题:语法杂技之自加自减
本文地址:https://blog.wudao6.cn/C/42.html
版权说明:若无注明,本文皆 逆向实验室原创,转载请保留文章出处。