先说结论,a++表示先使用a的值,然后再对a做加1处理;++a表示先对a做加1处理,然后再使用a的值。 a++和++a都等价于【a = a+1】。
我们知道在循环的过程中如下的代码中,无论是a++还是++a,其打印的结果均为0 1 2 3 4,但是注意除循环结构外是++a还是a++其结果可能会大有不同
#define _CRT_SECURE_NO_WARNINGS #includeint main() { for (int a = 0; a < 5; ++a) //for (int a = 0; a < 5; a++) { printf("%dt", a); } return 0; }
比如说是下面的代码
#includeint main() { int a = 3; //int c = a++;//a++表示将a输入到c后在对a进行+1 int c = ++a;//++a表示将a先进行+1,在输入到c; printf("a = %-dn", a); printf("c = %-dn", c); return 0; }
当c = ++a时,打印的结果为a = 4;c = 4也就是说将a+1的结果录入在c当中,此时a = c = 4;
当c = a++时,打印的结果为a = 4;c = 3也就是说先将a的值录入到c当中,再将a+1录入到a中;
做下面一个练习
#define _CRT_SECURE_NO_WARNINGS #includeint main() { int a = 0, b = 0, c = 2, d = 3; int i = a++ || ++b && c++ || d++; printf("a = %dn", a); printf("b = %dn", b); printf("c = %dn", c); printf("d = %dn", d); return 0; }
答案与解释都将放在评论区。



