问答详情
源自:5-10 局部与全局

我的代码哪里错啦

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

}


提问者:慕少6168890 2020-02-19 11:03

个回答

  • qq_慕仰8138156
    2020-02-19 15:10:17
    已采纳

    代码没错,但输出的 main方法内:x=50,跟要求不符;

  • 行行复行行
    2020-04-15 11:06:41

    你在if语句中并没有重新定义变量 int x,  而是对mian函数的局部变量x进行了重新赋值, 所以mian方法内输出的值和要求不符了。

  • 努力0拼命
    2020-02-20 11:13:59

    在if判断语句里面,重新定义一个局部变量int x=100,x/=2.这样if里面的执行后这个局部变量就不影响main函数里面的x=10的值