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

请问为什么在main函数里输出还是50,就是这句 printf("main方法内, x=%d\n", x);

#include <stdio.h>

int x = 77;

void fn1()

{

    printf("fn1(): x=%d\n", x);       

}

int main()

{

    int x = 10;

    if(x>0)

    {

        x = 100;

        x /= 2;

        printf("if语句内, x=%d\n", x);       

    }

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

    fn1();

    return 0;

}


正在回答

2 回答

你需要在第12行"x = 100;"前加上"int ",这时该行就变成了在if语句块内定义了一个新的int x,这个x的作用域是if语句块,这时if内x的值是100,if外main内x的值是10,main外x的值是77

7 回复 有任何疑惑可以回复我~
#1

qq_Paradise_nsEFO3 提问者

弄懂了,谢了
2018-10-08 回复 有任何疑惑可以回复我~
#2

哎呀帅呀

感觉那个fn1()应该也是属于main内啊
2018-12-03 回复 有任何疑惑可以回复我~
#3

13Mr 回复 哎呀帅呀

fn1函数是一个单独的函数,属于局部变量,在函数里没有定义x的值,所以这个函数就会调用全局变量x=77
2019-02-10 回复 有任何疑惑可以回复我~

我也一样?貌似有个bug总觉得每个月的第一个日志应该浮动在左边

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

举报

0/150
提交
取消

请问为什么在main函数里输出还是50,就是这句 printf("main方法内, x=%d\n", x);

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