局部变量和全局变量怎么才能分清楚
#include<stdio.h>
int a=1,b=2;
void fun1(int a,int b)
{
printf("%d%d",a,b);
}
void fun2()
{
a=3;b=4;
}
main()
{
fun1(5,6); fun2( );
printf("%d%d\n",a,b);l
}
在子程序中定义的变量称为局部变量,
在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序;
局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
fun1中输出5 6, main中输出3 4和换行符。
main中的a,b使用的是最上面声明的全局变量,fun1中的a,b使用的是函数参数列表中的a,b(局部,由main传入的)
在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序;
局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
fun1中输出5 6, main中输出3 4和换行符。
main中的a,b使用的是最上面声明的全局变量,fun1中的a,b使用的是函数参数列表中的a,b(局部,由main传入的)
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-02-13
#include<stdio.h>
int a=1,b=2;
void fun1(int a,int b)
{
printf("%d%d",a,b);
}
void fun2()
{
a=3;b=4;
}
main()
{
fun1(5,6); fun2( );
printf("%d%d\n",a,b);l
}
执行fun1(5,6)时,由于fun1内又定义a,b,所以fun1内的a,b为局部变量
执行fun2()时,fun2内并未定义a,b,所以fun2内的a,b为全局变量
同理 main()内的a,b也为全局变量
所以结果为5 6 3 4追问
int a=1,b=2;
void fun1(int a,int b)
{
printf("%d%d",a,b);
}
void fun2()
{
a=3;b=4;
}
main()
{
fun1(5,6); fun2( );
printf("%d%d\n",a,b);l
}
执行fun1(5,6)时,由于fun1内又定义a,b,所以fun1内的a,b为局部变量
执行fun2()时,fun2内并未定义a,b,所以fun2内的a,b为全局变量
同理 main()内的a,b也为全局变量
所以结果为5 6 3 4追问
这个题int a=1,b=2;不是全局变量吗 你说的 执行fun1(5,6)时,由于fun1内又定义a,b,所以fun1内的a,b为局部变量 执行fun1(5,6)不是全局变量吗 a=3;b=4在函数体内fun2不就是局部变量吗 你说的我没太看明白 能详细点吗
追答f1里的a,b是传入的变量
本回答被网友采纳第2个回答 2015-02-13
文件中变量定义时放在函数体外边,可以简单理解为 全局变量
fun1()里面打印的时候 a,b为形参的a,b,当局部变量与全局变量同名的时候,
同一作用域中,全局变量被隐藏,使用的是局部变量
fun2()函数中修改了全局变量 a,b的值,所以在主函数中打印5,6,3,4追问
fun1()里面打印的时候 a,b为形参的a,b,当局部变量与全局变量同名的时候,
同一作用域中,全局变量被隐藏,使用的是局部变量
fun2()函数中修改了全局变量 a,b的值,所以在主函数中打印5,6,3,4追问
int a=1,b=2; 是全局变量吗 那fun1(int a,int b) 不就是1,2吗 fun1(5,6); 和fun2( );是局部变量还是全局变量 void fun2() a=3;b=4; 这个是全局变量还是局部变量