当前位置:   article > 正文

c语言a++与++a的区别_c语言中++a和a++的区别

c语言中++a和a++的区别

先说结论,a++表示先使用a的值,然后再对a做加1处理;++a表示先对a做加1处理,然后再使用a的值。 a++和++a都等价于【a = a+1】。

我们知道在循环的过程中如下的代码中,无论是a++还是++a,其打印的结果均为0       1       2       3       4,但是注意除循环结构外是++a还是a++其结果可能会大有不同

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. int main()
  4. {
  5. for (int a = 0; a < 5; ++a)
  6. //for (int a = 0; a < 5; a++)
  7. {
  8. printf("%d\t", a);
  9. }
  10. return 0;
  11. }

比如说是下面的代码

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a = 3;
  5. //int c = a++;//a++表示将a输入到c后在对a进行+1
  6. int c = ++a;//++a表示将a先进行+1,在输入到c;
  7. printf("a = %-d\n", a);
  8. printf("c = %-d\n", c);
  9. return 0;
  10. }

当c = ++a时,打印的结果为a = 4;c = 4也就是说将a+1的结果录入在c当中,此时a = c = 4;

当c = a++时,打印的结果为a = 4;c = 3也就是说先将a的值录入到c当中,再将a+1录入到a中;

做下面一个练习

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. int main()
  4. {
  5. int a = 0, b = 0, c = 2, d = 3;
  6. int i = a++ || ++b && c++ || d++;
  7. printf("a = %d\n", a);
  8. printf("b = %d\n", b);
  9. printf("c = %d\n", c);
  10. printf("d = %d\n", d);
  11. return 0;
  12. }

答案与解释都将放在评论区。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号