回覆列表
  • 1 # 進擊的巨猿

    舉個例子說下吧,比如:

    j=++i

    j=i++

    上述兩個語句,語錄一相當於

    i=i+1

    j=i

    語錄二相當於

    j=i

    i=i+1

    區別在於++在前是值先自增,再參與運算,++在後是值先參與運算,之後再自增

  • 2 # Kobe096

    這是一個大部分開發語言都會接觸到的語法。那麼就舉例說明一下吧。

    以C語言為例,int main(){int b = 0; int i = 1;

    b = ++i; return b;} 此時b的值為2,因為++i是先對i進行加1,再賦值給b。

    int main(){int b = 0; int i = 1; b = i++; return b;}此時b的值為1,因為i++是先賦值給b,再對i加1。

    總之,++在i前就是先自增再賦值,反之就是先賦值再自增。

  • 3 # 程式設計師黑洞

    補充一下,其實除了語法上的不同,還有一個不同,即編譯器級別也有差異。

    ++i ;

    即 在 i變數的記憶體空間自增1。

    而 i++ 是先在棧上新申請一個臨時變數t,即新用一塊記憶體。把i 值複製給t。

    這個微小差異對執行速度有影響。

    其它無礙。

    從編譯器的視角看問題,你會感覺很不一樣。

  • 4 # 子更

    先看看基本區別:

    i++ :先在i所在的表示式中使用i的當前值,後讓i加1

    ++i :讓i先加1,然後在i所在的表示式中使用i的新值

    ++i相當於下列程式碼

    i += 1;

    return i;

    i++相當於下列程式碼

    j = i;

    i += 1;

    return j;

    當然如果編譯器會將這些差別都最佳化掉,那麼效率就都差不多了。

    ++i 與 i++ 的區別

    1、++i 的用法(以 a=++i ,i=2 為例)

    先將 i 值加 1 (也就是 i=i+1 ),然後賦給變數 a (也就是 a=i ),

    則最終 a 值等於 3 , i 值等於 3 。

    所以 a=++i 相當於 i=i+1 ,a=i

    2、i++ 的用法(以 a=i++ ,i=2 為例)

    先將 i 值賦給變數 a (也就是 a=i ),然後 i 值加 1 (也就是 i=i+1 ),

    則最終 a 值等於 2 ,i 值等於 3 。

    所以 a=i++ 相當於 a=i , i=i+1

    3、++i 與 i++

    a=++i 相當於 i++ , a=i

    a=i++ 相當於 a=i , i++

    4、++i 與 i++ 單獨使用時,相當於 i=i+1

    如果賦給一個新變數,則 ++i 先將 i 值加 1 ,而 i++ 先將 i 賦給新變數。

  • 5 # 宋v第三幕

    i++和++i的區別如下:

    i++是先賦值,然後再自增;++i是先自增,後賦值。

    用程式碼表示就是:

    若 a = i++; 則等價於 a=i;i=i+1;

    而 a = ++i; 則等價於 i=i+1;a=i;

    實際上呢

    i++:是先把i拿出來使用,然後再+1;

    ++i :是先把i+1,然後再拿出來使用;

  • 6 # 散居獵人

    把精力放在建模和演算法實現上。

    非要弄明白?看++位置就知道了。

    k=n++,等效為 k=n 和 n=n+1,兩句合為一句。

    k=++n,等效為 n=n+1和k=n,兩句合為一句。

  • 中秋節和大豐收的關聯?
  • 在你的觀念中,一個人的姓名重要嗎?