2012-12-10 22 views
-3
 void main(){ 
     int i; 
     i=printf("how r u?\n"); 
     i=printf("%d",i); 
     printf("%d",i);} 

上面的代碼給出瞭如下結果: how r u? 我的問題: 商店9和1如何?變量在C中分配了printf語句時存儲了什麼?C

+1

:http://www.cplusplus.com/reference/cstdio/printf/ ...一個簡單的搜索(yess,這是C++的參考,但它並沒有改變...) –

+0

更多相關的東西:http:// stackoverflow.com/q/3747501/2509 – dmckee

+0

僅僅因爲一個問題可以通過引用一個手冊頁來回答,並不是一個壞問題。我不確定爲什麼這個選票投下來。這是一個清楚而明確的問題(容易固定的語法),並有明確的答案。 – Novelocrat

回答

3

man page成功返回後,這些函數返回打印字符的數量....如果遇到輸出錯誤,則返回負值。

所以你得到9i因爲printf分別寫了91字符。

這也是相關的:「如果成功,則返回字符寫入總數」 Why does printf return a value?

+1

謝謝@ cegfault.Me也改變了字符,並觀察到了變化 – sabarish

+0

但是這打印出-1和2.如果返回的字符數如何返回第二個printf語句 'int i = -1; i = printf(「%d」,i); printf(「%d」,i);' – sabarish

+1

@sabarish:「-1」是兩個字符(「 - 」和「1」) – cegfault