C语言++i与i++

C语言i++和++i的区别
<div class="article-info-box">
    <div class="article-bar-top d-flex">
                                            <span class="time">2016年12月03日 11:09:28</span>
        <div class="float-right">
            <span class="read-count">阅读数:3753</span>
                                        </div>
    </div>
</div>
<article>
    <div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
                <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/htmledit_views-0a60691e80.css">
        <div class="htmledit_views">

    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,如下:

[csharp] view plain copy
print ?
  1. <span style=“font-family:’KaiTi_GB2312’;font-size:18px;”>#include<stdio.h>  
  2.   
  3. int main()  
  4. {  
  5.     int i=0;  
  6.   
  7.     while(i++)  
  8.   
  9.      { printf(”i=%d\n”,i);  
  10.   
  11.        if(i==3)  break;  
  12.   
  13.      }  
  14.   
  15.     printf(”i=%d\n”,i);  
  16. }</span>  
#include<stdio.h>

int main()
{
    int i=0;

    while(i++)

     { printf("i=%d\n",i);

       if(i==3)  break;

     }

    printf("i=%d\n",i);
}

          
     输出结果为:1

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

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

[csharp] view plain copy
print ?
  1. <span style=“font-family:’KaiTi_GB2312’;font-size:18px;”>#include<stdio.h>  
  2.   
  3. int main()  
  4. {  
  5.     int i=0;  
  6.   
  7.     while(++i)  
  8.   
  9.      { printf(”i=%d\n”,i);  
  10.   
  11.        if(i==3)  break;  
  12.   
  13.      }  
  14.   
  15.     printf(”i=%d\n”,i);  
  16. }</span>  
#include<stdio.h>

int main()
{
    int i=0;

    while(++i)

     { printf("i=%d\n",i);

       if(i==3)  break;

     }

    printf("i=%d\n",i);
}

         

     输出结果为: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的数都表示真。

    【小结】

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

            </div>
        </article>

    <div class="article-bar-bottom">
            <div class="article-copyright">
        版权声明:本文为博主原创文章,未经博主允许不得转载。          https://blog.csdn.net/u013046097/article/details/53442929       </div>
                    <div class="tags-box artic-tag-box">
        <span class="label">文章标签:</span>
                    <a class="tag-link" href="http://so.csdn.net/so/search/s.do?q=c语言&amp;t=blog" target="_blank">c语言                       </a><a class="tag-link" href="http://so.csdn.net/so/search/s.do?q=i++&amp;t=blog" target="_blank">i++                       </a><a class="tag-link" href="http://so.csdn.net/so/search/s.do?q=++i&amp;t=blog" target="_blank">++i                       </a>
    </div>
                        </div>

<!-- !empty($pre_next_article[0]) -->
    </div>
  • 14
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值