为了账号安全,请及时绑定邮箱和手机立即绑定

把main函数的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语句内, x=%d\n", x);       

    }

    int x = 10;

    printf("main方法内, x=%d\n", x);

    fn1();

    return 0;

}

结果是if语句内, x=50

main方法内, x=10

fn1(): x=50    main函数中的int x影响到了fnl啊,求大神解救


正在回答

2 回答

x/=2的时候 x值已经变成了50,因为没有对x定义,所以此处x是全局变量,而你后面的int x=10是只是局部变量,不影响到后面的fn1()。

0 回复 有任何疑惑可以回复我~

代码从上至下执行,你把代码从上到下捋一遍就明白了,把每步执行的结果都写出来看看

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

把main函数的int x换个位置为何会影响到fnl(),有大神能给解救下吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信