2014-09-22 84 views

回答

8

printf()如何知道格式化字符串結束並且實際值開始的位置?您不包含任何這樣的信息,它是格式化字符串的整個點:描述參數的可變數量,因此printf()內的代碼知道要處理多少個參數。

以及以何種方式是優於

printf("%d%d", 2, 4); 

此外,打印結果("24",不換行)將是非常艱難的任何方式來詮釋,所以你還不如加間隔,這將有助於使格式化字符串更可讀:

printf("%d %d", 2, 4); 

這將打印"2 4"(再次,沒有換行符)。

請注意,在C中,無法使用變量參數函數(在這種情況下爲printf())以某種方式確定其參數的數量(或多個類型!)。它必須知道,或能夠根據一些參數(或某些其他狀態)自行計算。

另外,如果想打印"%s",我不知道你怎麼想象

printf("%s", "%s"); 

應該工作?

+2

這是一件好事,你在最後附加了一個換行符,但你應該提及這個附加和你的理由,並將它包含在你顯示的輸出中。 – Deduplicator 2014-09-22 09:29:18

+1

@Deduplicator謝謝。我不打算在那裏換行,我似乎剛剛自動輸入。 :) – unwind 2014-09-22 09:34:11

相關問題