我現在正在學習C編程(我對它很陌生),我也在嘗試各種各樣的東西來理解事情的工作方式。所以,我很清楚下面的代碼是不正確的代碼;但我還是嘗試了一下,瞭解它將如何編譯:在C編程中,%d是否隨機生成數字?
#include <stdio.h>
#include <stdlib.h>
int {
printf("I think C will give me %d %d %d %d %d.", 20);
return 0;
}
而且我在命令行中得到這個:
I think C will give me 20 8 108 108 2. Process returned 0 (0x0) execution time : 0.234 s Press any key to continue.
如果從號碼8,108,108和2 ?他們是如何產生的?
我只是想了解它是如何工作的。謝謝。
這是未定義的行爲,這就是爲什麼。 –
您只爲五個'%d'格式說明符中的第一個提供了參數,所以行爲未定義。 –
行爲未定義。沒有人知道這些數字是如何「生成」的,因爲在實踐中它將取決於許多特定實施情況。換句話說,可以想出一個「真實生活」的答案,但它高度依賴於你的設置。我們從這裏看不到它。 – AnT