int main(){
// Comment the next line, Garbage value is printed. However, this shows an integer value.
int x=32;
printf("%d");
return 0;
}
這種行爲的任何原因,還是隨機?「printf(」%d「);」的行爲
int main(){
// Comment the next line, Garbage value is printed. However, this shows an integer value.
int x=32;
printf("%d");
return 0;
}
這種行爲的任何原因,還是隨機?「printf(」%d「);」的行爲
你告訴printf()
如何打印東西(格式說明%d
),但你沒有告訴printf()
什麼打印。
詳細說明,您忘記了爲提供的格式說明符%d
提供了必需的參數。
C
標準說,如果提供的格式說明符的參數不夠,behaviour is undefined。
FWIW,只是指定格式說明符不會奇蹟般地考慮它的參數。你需要寫點類似
printf("%d", x);
打印的值爲x
。
的printf()
具有以下原型
int printf(const char *,...);
你通過什麼%d
到printf()
而且由於這是一個格式說明打印出來int
printf()
尋找其需要,因爲你不被打印出來的參數不通過任何這是未定義的行爲
感謝您的澄清。不幸的是,stackoverflow不允許我接受2個答案! – user3815163
感謝您的澄清。 – user3815163
@ user3815163不客氣。 :-) –