这是笔者发地第一篇博客,问题很简单,大学读了几年,还总是容易搞混。
也不清楚到底有没有很好的区分方法,但我想每次遇到问题之后自己动手去调试才是最能够让自己记忆深刻的方法吧。
这里我只分了两种情况:
int res1, res2, a = 1;
printf("a=%d\n", a);
res1 = (a++) + 1;
printf("(a++)+1=%d\n", res1);
printf("a=%d\n", a);
res2 = (++a) + 1;
printf("(++a)+1=%d\n", res2);
printf("a=%d\n", a);
调试结果如下:
a=1
(a++)+1=2
a=2
(++a)+1=4
a=3
结论:i++和++i都有实现自增的功能,但i++在实现自增后并未拿来运算,即先运算再赋值,而++i则是先赋值,再自增。