十先生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;
}
要求“main方法内,x=10”,你执行下来,结果实际是“main方法内,x=50”(已经经过了if的运算)。所以通过不了。
你这个程序是没有问题的,但是你又说有错误,那么,你就要将你的问题描述清楚:比如说,你编写这个程序要想实现什么功能,要求要有什么效果之类的,出了错误,如果编译器有提示,要给出错误提示。这样才好根据你的提问去回答你的问题。如果你的提问模糊不清,别人就不知道怎么回答,你也得不到你要的答案。
通过你这个程序,我猜测你的问题是想问main函数外的x变量和main函数内的变量的值为什么不一样是么
在c语言中如果全局变量和局部变量的变量名相同,那么局部变量就会屏蔽全局变量。
就像你这个程序,在main函数内的变量x就屏蔽了main外的全局变量x,在main函数内打印的变量x的值就是main函数内的局部变量x的值(50);而fn1函数打印出来的变量x就是全局变量(77)
左侧任务中有不会了怎么办,里面有源码提示
C语言入门
926027 学习 · 20793 问题
相似问题