i++和++i命令的區別有:
1、賦值順序不同
++ i 是先加後賦值;i ++ 是先賦值後加;++i和i++都是分兩步完成的。
因為++i 是後面一步才賦值的,所以它能夠當作一個變數進行級聯賦值,++i = a =b,即 ++i 是一個左值;i++ 的後面一步是自增,不是左值。
形象的理解可以是i++先做別的事,再自己加1,++i先自己加1,再做別的事情。
2、單獨使用時一樣
獨立使用時++i 和 i++二者效果一樣,就是 i=i+1。表示式中i++取i的值參與運算,而++i取i+1的值參與運算。舉例 a = ++i,相當於 i=i+1; a = i; a = i++,相當於 a = i; i=i+1。
3、效率不同
比如i=3,b=i++就是說b=3,完成之後讓i變成4,b=++i就是先讓i++變成4,然後b=4,其中++i比i++效率要高些。一般來說在迴圈域裡面,這兩者並沒有什麼很大的區別,但是要注意其生存週期,以及i值在程式流中的變化。
擴充套件資料:
++i 和i++ 的使用,一般來說在迴圈域裡面,這兩者並沒有什麼很大的區別,因為編譯器一般都會給你做最佳化。但是要注意其生存週期,以及很難察覺的寫髒,就好像指標delete以後一定要賦予0一樣,我們要注意i值在程式流中的變化。
i++和++i命令的區別有:
1、賦值順序不同
++ i 是先加後賦值;i ++ 是先賦值後加;++i和i++都是分兩步完成的。
因為++i 是後面一步才賦值的,所以它能夠當作一個變數進行級聯賦值,++i = a =b,即 ++i 是一個左值;i++ 的後面一步是自增,不是左值。
形象的理解可以是i++先做別的事,再自己加1,++i先自己加1,再做別的事情。
2、單獨使用時一樣
獨立使用時++i 和 i++二者效果一樣,就是 i=i+1。表示式中i++取i的值參與運算,而++i取i+1的值參與運算。舉例 a = ++i,相當於 i=i+1; a = i; a = i++,相當於 a = i; i=i+1。
3、效率不同
比如i=3,b=i++就是說b=3,完成之後讓i變成4,b=++i就是先讓i++變成4,然後b=4,其中++i比i++效率要高些。一般來說在迴圈域裡面,這兩者並沒有什麼很大的區別,但是要注意其生存週期,以及i值在程式流中的變化。
擴充套件資料:
++i 和i++ 的使用,一般來說在迴圈域裡面,這兩者並沒有什麼很大的區別,因為編譯器一般都會給你做最佳化。但是要注意其生存週期,以及很難察覺的寫髒,就好像指標delete以後一定要賦予0一樣,我們要注意i值在程式流中的變化。