把main函數(shù)的int x換個位置為何會影響到fnl(),有大神能給解救下嗎
那為什么#include <stdio.h>
int x = 77;
void fn1()
{
? ? printf("fn1(): x=%d\n", x); ? ? ??
}
int main()
{
? ??
? ? if(x>0)
? ? {
? ? ? ? x = 100;
? ? ? ? x /= 2;
? ? ? ? printf("if語句內(nèi), x=%d\n", x); ? ? ??
? ? }
? ? int x = 10;
? ? printf("main方法內(nèi), x=%d\n", x);
? ? fn1();
? ? return 0;
}
結(jié)果是if語句內(nèi), x=50
main方法內(nèi), x=10
fn1(): x=50 ? ?main函數(shù)中的int x影響到了fnl啊,求大神解救
2015-05-05
x/=2的時候 x值已經(jīng)變成了50,因為沒有對x定義,所以此處x是全局變量,而你后面的int x=10是只是局部變量,不影響到后面的fn1()。
2015-05-04
代碼從上至下執(zhí)行,你把代碼從上到下捋一遍就明白了,把每步執(zhí)行的結(jié)果都寫出來看看