C語言中使用 ++ 運算子執行 printf


某些問題中我們可以發現一些 printf() 語句包含一些帶有 ++ 運算子的行。在某些競賽考試題目中,我們可以發現這類題目,需要找出該程式碼的輸出。本部分中,我們將瞭解此類題目的示例,並嘗試找出答案。

示例程式碼

#include<stdio.h>
int main() {
   volatile int x = 20;
   printf("%d %d\n", x, x++);
   x = 20;
   printf("%d %d\n", x++, x);
   x = 20;
   printf("%d %d %d ", x, x++, ++x);
   return 0;
}

現在我們將嘗試猜測輸出結果是什麼。大多數編譯器從右向左獲取 printf() 的每個引數。因此在第一個 printf() 語句中,最後一個引數是 x++,因此它將首先執行,它會列印 20,然後將值從 20 增加到 21。現在列印倒數第二個引數,並顯示 21。以此類推,其他行也以這種方式計算。對於 ++x,它會在列印之前增加值,對於 x++,它首先會列印值,然後增加值。

請檢視輸出以獲得更好的理解。

輸出

21 20
20 20
22 21 21

更新於: 30-7-2019

2K+ 瀏覽量

開啟你的 職業生涯

完成課程以獲得認證

開始吧
廣告