舉例說明C語言中i++和++i的區(qū)別是什么?-創(chuàng)新互聯(lián)

今天小編給大家分享的是舉例說明C語言中i++和++i的區(qū)別是什么,相信很多人都不太了解,為了讓大家更加了解C語言中i++和++i的區(qū)別,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。

成都創(chuàng)新互聯(lián)公司于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元萊蕪做網(wǎng)站,已為上家服務(wù),為萊蕪各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

舉例說明C語言中i++和++i的區(qū)別是什么?

i++和++i的區(qū)別及舉例說明

i++和++i命令的區(qū)別有:

1、賦值順序不同

++ i 是先加后賦值;i ++ 是先賦值后加;++i和i++都是分兩步完成的。

因?yàn)?+i 是后面一步才賦值的,所以它能夠當(dāng)作一個(gè)變量進(jìn)行級聯(lián)賦值,++i = a =b,即 ++i 是一個(gè)左值;i++ 的后面一步是自增,不是左值。

形象的理解可以是i++先做別的事,再自己加1,++i先自己加1,再做別的事情。

例如:

a = ++i,相當(dāng)于 i=i+1; a = i;

a = i++,相當(dāng)于 a = i; i=i+1;

2、效率不同

比如i=3,b=i++就是說b=3,完成之后讓i變成4,b=++i就是先讓i++變成4,然后b=4,其中++i比i++效率要高些。一般來說在循環(huán)域里面,這兩者并沒有什么很大的區(qū)別,但是要注意其生存周期,以及i值在程序流中的變化。

3、 i++ 不能作為左值,而++i 可以。

左值是對應(yīng)內(nèi)存中有確定存儲地址的對象的表達(dá)式的值,而右值是所有不是左值的表達(dá)式的值。一般來說,左值是可以放到賦值符號左邊的變量。

但能否被賦值不是區(qū)分左值與右值的依據(jù)。比如,C++的const左值是不可賦值的;而作為臨時(shí)對象的右值可能允許被賦值。左值與右值的根本區(qū)別在于是否允許取地址&運(yùn)算符獲得對應(yīng)的內(nèi)存地址。

比如:

int i = 0;
int *p1 = &(++i);//正確
int *p2 = &(i++);//錯(cuò)誤
++i = 1;//正確
i++ = 1;//錯(cuò)誤

關(guān)于C語言中i++和++i的區(qū)別是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

標(biāo)題名稱:舉例說明C語言中i++和++i的區(qū)別是什么?-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://bm7419.com/article38/hsgpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站網(wǎng)站策劃、虛擬主機(jī)網(wǎng)站制作、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)