C语言,全局变量和局部变量有什么区别
展开全部
我作个比喻,一个大的正方形为全局,大正方形内部有个小正形为局部。有个变量为x在大正方形内,在小正方形之外。有个变量y在小正形之内。变量x可以在任何地方被使用包括在小正方形内
而y变量的使用范围仅在小正方形之内。不知这样解释你理解不?
而y变量的使用范围仅在小正方形之内。不知这样解释你理解不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局变量是在一个函数中都有意义的变量,局部变量是在一个循环中有意义的变量。
#include
void
main()
{int
sum=0;//sum是全局变量
for(int
i=1;i<=5;i++)//i是局部变量
{sum=sum+i;}
print("%d",sum);
}
#include
void
main()
{int
sum=0;//sum是全局变量
for(int
i=1;i<=5;i++)//i是局部变量
{sum=sum+i;}
print("%d",sum);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fun(a+fun(d));
//先里后外嘛
先fun(d)
因为main中没定义d,没局部就取全局的,d=1
fun(int
p)
{
static
int
d=5;
d+=p;
printf("%d
",d);
return(d);
}
所以p
=
1
由于fun里有局部静态int
d
=
5
d
+=
p
就是
5
+
1
=
6
第一次输出就是6了
return(d);
返回6
给
fun(a+fun(d));
就是
fun(a
+
6),a是3
那就是fun(9)
fun(int
p)
{
static
int
d=5;
d+=p;
printf("%d
",d);
return(d);
}
p
=
9
d
+=
p
为
6
+
9
=
15(前面说了d是静态int,它保存的值直到程序结束才消除,所以d保存了上面计算的5
+
1
=
6)
第二次输出为15
return(d);
返回15回main
再输出
还是15
结果
6
15
15
C
//先里后外嘛
先fun(d)
因为main中没定义d,没局部就取全局的,d=1
fun(int
p)
{
static
int
d=5;
d+=p;
printf("%d
",d);
return(d);
}
所以p
=
1
由于fun里有局部静态int
d
=
5
d
+=
p
就是
5
+
1
=
6
第一次输出就是6了
return(d);
返回6
给
fun(a+fun(d));
就是
fun(a
+
6),a是3
那就是fun(9)
fun(int
p)
{
static
int
d=5;
d+=p;
printf("%d
",d);
return(d);
}
p
=
9
d
+=
p
为
6
+
9
=
15(前面说了d是静态int,它保存的值直到程序结束才消除,所以d保存了上面计算的5
+
1
=
6)
第二次输出为15
return(d);
返回15回main
再输出
还是15
结果
6
15
15
C
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询