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

我觉得原始的就对呀? 哪里错了?求指导,谢谢!

#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;

}


正在回答

3 回答

要求“main方法内,x=10”,你执行下来,结果实际是“main方法内,x=50”(已经经过了if的运算)。所以通过不了。

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

十先生Shan 提问者

非常感谢!
2015-10-31 回复 有任何疑惑可以回复我~

你这个程序是没有问题的,但是你又说有错误,那么,你就要将你的问题描述清楚:比如说,你编写这个程序要想实现什么功能,要求要有什么效果之类的,出了错误,如果编译器有提示,要给出错误提示。这样才好根据你的提问去回答你的问题。如果你的提问模糊不清,别人就不知道怎么回答,你也得不到你要的答案。


通过你这个程序,我猜测你的问题是想问main函数外的x变量和main函数内的变量的值为什么不一样是么

在c语言中如果全局变量和局部变量的变量名相同,那么局部变量就会屏蔽全局变量。

就像你这个程序,在main函数内的变量x就屏蔽了main外的全局变量x,在main函数内打印的变量x的值就是main函数内的局部变量x的值(50);而fn1函数打印出来的变量x就是全局变量(77)

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

左侧任务中有不会了怎么办,里面有源码提示

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

举报

0/150
提交
取消

我觉得原始的就对呀? 哪里错了?求指导,谢谢!

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