今天小編給大家分享的是舉例說明C語言中i++和++i的區別是什么,相信很多人都不太了解,為了讓大家更加了解C語言中i++和++i的區別,所以給大家總結了以下內容,一起往下看吧。一定會有所收獲的哦。
成都創新互聯公司于2013年開始,是專業互聯網技術服務公司,擁有項目網站制作、成都網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元萊蕪做網站,已為上家服務,為萊蕪各地企業和個人服務,聯系電話:028-86922220i++和++i的區別及舉例說明
i++和++i命令的區別有:
1、賦值順序不同
++ i 是先加后賦值;i ++ 是先賦值后加;++i和i++都是分兩步完成的。
因為++i 是后面一步才賦值的,所以它能夠當作一個變量進行級聯賦值,++i = a =b,即 ++i 是一個左值;i++ 的后面一步是自增,不是左值。
形象的理解可以是i++先做別的事,再自己加1,++i先自己加1,再做別的事情。
例如:
a = ++i,相當于 i=i+1; a = i;
a = i++,相當于 a = i; i=i+1;
2、效率不同
比如i=3,b=i++就是說b=3,完成之后讓i變成4,b=++i就是先讓i++變成4,然后b=4,其中++i比i++效率要高些。一般來說在循環域里面,這兩者并沒有什么很大的區別,但是要注意其生存周期,以及i值在程序流中的變化。
3、 i++ 不能作為左值,而++i 可以。
左值是對應內存中有確定存儲地址的對象的表達式的值,而右值是所有不是左值的表達式的值。一般來說,左值是可以放到賦值符號左邊的變量。
但能否被賦值不是區分左值與右值的依據。比如,C++的const左值是不可賦值的;而作為臨時對象的右值可能允許被賦值。左值與右值的根本區別在于是否允許取地址&運算符獲得對應的內存地址。
比如:
int i = 0; int *p1 = &(++i);//正確 int *p2 = &(i++);//錯誤 ++i = 1;//正確 i++ = 1;//錯誤
關于C語言中i++和++i的區別是什么就分享到這里了,希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
標題名稱:舉例說明C語言中i++和++i的區別是什么?-創新互聯
網頁路徑:http://vcdvsql.cn/article38/hsgpp.html
成都網站建設公司_創新互聯,為您提供動態網站、網站策劃、虛擬主機、網站制作、商城網站、網站設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯