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

来源:5-10 局部与全局

十先生Shan

2015-10-29 22:21

#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回答

  • daoer
    2015-10-30 14:31:19
    已采纳

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

    十先生Sha...

    非常感谢!

    2015-10-31 13:20:26

    共 1 条回复 >

  • 不加班
    2015-10-31 11:09:24

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


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

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

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

  • 心悦君夕
    2015-10-30 10:12:12

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926027 学习 · 20793 问题

查看课程

相似问题