2016-09-19 73 views
-3

我有一個關於在C中的putchar函數的問題。當我在學習時,我偶然發現以下語句: printf("%c\n",putchar('A'+1)+2); 當我編譯和執行程序時,結果是BD。我不敢肯定,當我們輸入putchar('A' + 1)的結果將是B,但我們如何得到D?這個函數不一次返回一個字符嗎? 在此先感謝confused關於putchar結果C

+4

'putchar'返回寫入的字符('B'),然後給這個('D')加上2並將它作爲參數傳遞給'printf'。 –

+1

[這個putchar參考](http://en.cppreference.com/w/c/io/putchar)應該是非常有用的。 –

+1

你期望什麼?你不明白的內容是什麼?在調試器中看到什麼? 「這個函數不一次返回一個字符嗎?」 - D''有多少個字符? – Olaf

回答

1

putchar是做兩件事情:

  1. 寫入字符「B」來stdout
  2. 返回炭「B」作爲函數調用的結果。

由於'B'由putchar返回,因此它有2個添加到它使'D'。這作爲參數傳遞給printf,然後將「D \ n」寫入stdout