1. 程式人生 > >【C++】(++a)和(a++)區別解讀

【C++】(++a)和(a++)區別解讀

  • 簡介
  • code&result

1 簡介

  1. ++a和a++,都是個表示式,最後的結果就取決於是先加,還是後加;
  2. 如果是先加,那麼最後的表示式的結果就是a的值加1;
  3. 如果是後加的話,則表示式的值就是原來a的值;
  4. 無論是先加,還是後加,a的值計算後一定會加1;

2 Code

I.在表示式中
  若 a = 1, b = a++ ==>> 運算完 b = 1, a = 2 【先賦值,後 + 1】
  若 a = 1, b = ++a ==>> 運算完 b = 2, a = 2 【先 + 1,後賦值】
    也可理解為:
   a++ <<==>> a = a + 1,  【先賦值,後 + 1】

   ++a <<==>> a = 1 + a,  【先 + 1,後賦值】
II.單獨的語句中二者都沒有什麼區別!
ex: int a = 6,b = 6;
    a++; ++b; //這裡就是語句!
    printf("%d %d",a,b);
    輸出都是2.
III.if 條件語句
    表示式 :if((a++)==1)     【先判斷,後 + 1】
                 if((++a)==1)     【先 + 1,後判斷】