C语言,变量作用域的问题。。。 #include <stdio.h> int x,y,a=15,b=10; void num() x=a-b; y=a+b; v
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,变量作用域的问题。。。 #include <stdio.h> int x,y,a=15,b=10; void num() x=a-b; y=a+b; v相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
int x,y,a=15,b=10;
void num()
x=a-b;
y=a+b;
void main()
int a=7,b=5;
x=x+a;
y=y-b;
num();
printf(“%d,%d\n”,x,y);
程序输出为什么是5,25啊?有一点蒙了。。
mian()里面不是有了a=7,b=5吗,为什么到了num()中不用a=7,b=5而是用上面的a=15,b=10呢。。。
其实很容易区分。
你在程序加多句输出就可以进行比较区分了。
原程序中的主函数printf输出的只是num函数数据
#include <stdio.h>
int x,y,a=15,b=10;
void num()
x=a-b;
y=a+b;
void main()
int a=7,b=5;
x=x+a;
y=y-b;
printf("%d,%d\\n",x,y);//输出主函数中x,y的数据
num();
printf("%d,%d\\n",x,y); //输出num函数数据
总的来说:全局函数使用时要注意两点:
1,全局变量可以在多个函数中使用,当其中一个函数改变了全局变量的值,可能会影响其他函数的执行结果。
2,在一个函数内定义了一个与变量名相同的局部变量(形参)时,局部变量有效,而全局变量在该函数内不起作用。
而前面定义的 变量 x y a b 是全局变量在程序中的任何位置都是可以看到的也是可以使用的,只不过 在main函数中又重新定义了 变量 a b 这样全局变量就隐藏起来了,如果要使用全局变量a 不必须这样调用 ::a 这样系统就知道你调用的是全局变量,而不是在函数中定义的变量了本回答被提问者采纳 参考技术C 你main()中的a,b又没有传值num(),num中没有定义a,b;当然是用全局变量中的a,b啦。。
以上是关于C语言,变量作用域的问题。。。 #include <stdio.h> int x,y,a=15,b=10; void num() x=a-b; y=a+b; v的主要内容,如果未能解决你的问题,请参考以下文章