誰能解釋為什么這段代碼會列印垃圾值?
int main(){
int a, b, sum;
sum = a b;
scanf("%d%d",&a,&b);
printf("addition is %d", sum);
return 0;
}
但是,如果我撰寫這樣的代碼,它會列印正確的值嗎?
int main(){
int a, b, sum;
scanf("%d%d",&a,&b);
sum = a b;
printf("addition is %d", sum);
return 0;
}
uj5u.com熱心網友回復:
這是因為 C 是一種命令式語言,每一行就像一個命令,從上到下執行。所以在這種情況下:
int main(){
int a, b, sum; // create 3 variables: a, b and sum. Garbage on start
sum = a b; // add 'a' and 'b' and save it in 'sum'. Still garbage
scanf("%d%d",&a,&b); // read 2 numbers and save them in 'a' and 'b'. Nowe they're valid, but 'sum' is still garbage
printf("addition is %d", sum); // print 'sum'. That's garbage
return 0;
}
通過簡單地重新排序操作(添加a和b讀取它們的值之后)我們得到有效的結果
uj5u.com熱心網友回復:
sum = a b;
不是定義或公式,它是一個陳述句- 只要遇到它就會執行,無論值在a和b(不確定)。
C只是不是那么高級。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/331911.html
標籤:C
