首頁  >  文章  >  後端開發  >  i++和++i的差別及舉例說明

i++和++i的差別及舉例說明

angryTom
angryTom原創
2020-02-28 10:43:5064516瀏覽

i++和++i的差別及舉例說明

i 和i的差異及舉例說明

i 和i指令的差異有:

1 、賦值順序不同

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

因為i 是後面一步才賦值的,所以它能夠當作一個變數進行級聯賦值, i = a =b,即i 是一個左值;i 的後面一步是自增,不是左值。

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

推薦學習:c語言影片教學

例如:

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;//错误

PHP中文網,大量程式入門教學課程,歡迎學習!

以上是i++和++i的差別及舉例說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn