当前位置:   article > 正文

C语言i++和++i的区别

c语言i++和++i的区别

    i++和++i的区别虽然简单,还是记录一下吧!

    【知识点】

     1. 对于普通独立的语句,i++和++i是一样的,如:

        i++; 等效于i=i+1;

        ++i; 等效于i=i+1;

     2. 用于赋值语句,i++先赋值后加1,++i先加1后赋值,如:

        i=1; y=i++;  等效于:i=1; y=i; i=i+1; 则执行完后 y=1; i=2;

        i=1; y=++i;  等效于:i=1; i=i+1; y=i; 则执行完后 y=2; i=2;

     3. 用于判断条件表达式:如

        a、i++:先执行判断后加1,如下:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i=0;
  5. while(i++)
  6. { printf("i=%d\n",i);
  7. if(i==3) break;
  8. }
  9. printf("i=%d\n",i);
  10. }

          
     输出结果为:1

     分析:i++先把i的值0拿出来做判断条件,此时while(0)条件为假,所有不执行while循环体,但是判断完成后,i执行+1动作(i=i+1),所以i=1,输出值为1;

        b、++i:先加1后执行判断,如下:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i=0;
  5. while(++i)
  6. { printf("i=%d\n",i);
  7. if(i==3) break;
  8. }
  9. printf("i=%d\n",i);
  10. }

         

     输出结果为:i=1,i=2,i=3,i=3

     分析:++i,执行过程先把i的值执行i=i+1,此时i=1再进行判断,所有while(1)条件为真,然后在执行循环体,输出i=1回车换行,if不成立,继续循环;

          当i=1时,再判断循环条件++i,还是先执行i=i+1,此时i=2; while(2) 条件为真,然后再做循环体,此时输出 i=2回车换行;if不成立,继续循环;

          当i=2时,再判断循环条件++i,还是先执行i=i+1,此时i=3; while(3) 条件为真,然后再做循环体,此时输出 i=3回车换行;if成立,强制推出循环;

          最后输出i=3,结束。

     这里需要注意的是:

     a、break语句表示强制从循环体内跳出,提前结束循环。

     b、while(1)、while(2)、while(3)都表示条件为真,也就是说非0的数都表示真。

    【小结】

     越是简单基础的知识,越需要常常回顾,多多积累!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/215314
推荐阅读
相关标签
  

闽ICP备14008679号