c語言++放在前面和後面的區別分析

來源:文萃谷 2.63W

在C語言中,前綴自增(++i)和後綴自增(i++)操作符並不是同一個操作符,前綴自增操作符的優先級高於後綴自增,同時得到的結果並不完全一致,因此需要區分。

c語言++放在前面和後面的區別分析

咱們先看第一個

i被賦值0,i++(後++)並沒有輸出1。

現在i被賦值0,++i,也就是前++後輸出了1。

i被賦值0,前++ 的話,就是自身先加1 就自身賦值變成1 ,後面的i的值都是1了。

i被賦值0,先是後++,後++意思是 自己先被賦值,賦值完後等本語句結束後就自己加1了。第一個printf輸出的是i開始被賦的值0, 第一個printf之後就是一個(;)分號,分號意思是這個語句的結束。 這條語句結束,這時候i就偷偷的自己加上1了,第2個printf輸出的`就是上一個語句處理後i的值了。

i被賦值0,i++ ; 這是一條語句。因為有分號。 我們説 後加加 就是 先自己賦值,然後等待本語句結束時自己再加1。 i++ ; 執行的結果就是 0+1=1了。printf只管輸出 i的值了。

i先被賦值0, i++後面帶個分號“;” 就是這條語句結束, i++;處理的結果是 0+1=1 後面的i 的值便是1了。

i被賦值為0,++i; 前++就是自己先加1,再賦值給自身。 ++i; 處理 的結果是 0+1=1。

i先賦值為0,++i; (前++)就是 自己先0+1=1,然後把1再賦值給自己 i就變成了1 i++; (後++) 前面i已經被賦值為1了,這裏i++; 也就是先把上一個i的值1 賦給自己變成1,但是遇到分號(;)意味着這條語句的結束, 語句結束i++; 就執行1+1=2 了。

i被賦值為0,前++, i就變成1 printf裏面的i++ 輸出的只能是自己被賦的那個值1 如果下面再加個printf("%d",i);的話輸出的i就是為2了

總結: 前++就是 先自己加1,加完後賦值給自己。 後++就是 先自己賦值,賦完值還必須等語句結束才能加1。

口訣:前+ 後賦。這是我想的。 意思是:前面++ 第一步先加+1 後賦 就是後++的 就先賦值。 此外前-- 與後-- 道理也是一樣的。

綜上:++在前是先加1在運算, 在後面是先運算在加1

例子如下。

important; position: static !important; padding: 0px !important; line-height: 1.1em !important; outline: invert none 0px !important; min-height: auto !important; width: auto !important; bottom: auto !important; float: none !important; height: auto !important; font-size: 1em !important; vertical-align: baseline !important; overflow: visible !important; top: auto !important; right: auto !important; left: auto !important; background-image: none; background-attachment: scroll; background-size: initial; background-origin: initial; background-clip: initial; background-position: 0% 0%; background-repeat: repeat;" class="firstRow">
123456int i=0;printf("%d",++i);i加了1才給傳遞參數,所以輸出是1i=0;printf("%d",i++)前傳遞參數,所以還是輸出原來的值是0printf("%d,i) 因為上面那句加了1所以 輸出是1

熱門標籤