C语言,全局变量和局部变量有什么区别

 我来答
拓跋陶宁弘甜
2020-03-18 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:651万
展开全部
全局变量就是整个源程序都有效的变量;而局部变量会在其所属的函数或循环等结束后消亡。
整个程序都要用的变量定义全局变量,如果就是某个函数用的话,就定义局部变量,以便其他函数可以重新定义同名变量来使用。
要是都用全局变量,那遇到大程序时,程序是由不同人分别编各自的模块或函数,不能避免定义同名变量,到时就会冲突。
度浩丽局妙
2019-12-16 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:31%
帮助的人:682万
展开全部
我作个比喻,一个大的正方形为全局,大正方形内部有个小正形为局部。有个变量为x在大正方形内,在小正方形之外。有个变量y在小正形之内。变量x可以在任何地方被使用包括在小正方形内
而y变量的使用范围仅在小正方形之内。不知这样解释你理解不?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
素天和包音
2019-03-31 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:848万
展开全部
全局变量是在一个函数中都有意义的变量,局部变量是在一个循环中有意义的变量。
#include
void
main()
{int
sum=0;//sum是全局变量
for(int
i=1;i<=5;i++)//i是局部变量
{sum=sum+i;}
print("%d",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
羿天哈晓桐
2019-08-14 · TA获得超过3609个赞
知道大有可为答主
回答量:2975
采纳率:27%
帮助的人:396万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式