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,如下:
- <span style=“font-family:’KaiTi_GB2312’;font-size:18px;”>#include<stdio.h>
- int main()
- {
- int i=0;
- while(i++)
- { printf(”i=%d\n”,i);
- if(i==3) break;
- }
- printf(”i=%d\n”,i);
- }</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後執行判斷,如下:
- <span style=“font-family:’KaiTi_GB2312’;font-size:18px;”>#include<stdio.h>
- int main()
- {
- int i=0;
- while(++i)
- { printf(”i=%d\n”,i);
- if(i==3) break;
- }
- printf(”i=%d\n”,i);
- }</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語言&t=blog" target="_blank">c語言 </a><a class="tag-link" href="http://so.csdn.net/so/search/s.do?q=i++&t=blog" target="_blank">i++ </a><a class="tag-link" href="http://so.csdn.net/so/search/s.do?q=++i&t=blog" target="_blank">++i </a>
</div>
</div>
<!-- !empty($pre_next_article[0]) -->
</div>