2013-10-01 54 views
-6

我剛剛試圖知道輸出沒有提供變量,而只是%d,並且在編譯程序時沒有錯誤,但我不知道如何顯示如下輸出。爲什麼格式化輸入輸出需要提供變量?

#include <stdio.h> 

int main() 
{ 
    printf("%d");  
    return 0; 
} 

輸出成爲7288368

+6

這是不確定的行爲。 –

+0

取決於編譯器和您設置上述警告標誌可能會彈出警告。 –

+1

GIGO。垃圾進垃圾出。 – ppeterka

回答

0

「爲什麼格式化輸入輸出需要變量要被提供?」

因爲執行printf要求如此。從manual page of printf

「的每種轉換規範由字符%引入,並且用轉換指定結束...與轉換說明必須對應正確(類型提升後)的參數」。

您已經使用"%d"格式字符串,預計相應的十進制轉換一個完整的說法,但你沒有提供任何參數,這導致了未定義的行爲