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

  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後執行判斷,如下:

  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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章