C语言中全局变量可以是非静态变量吗

 我来答
天云小店
推荐于2017-10-11 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:758万
展开全部

在C语言中,全局变量可以是非静态变量的。

原因如下:

静态变量的关键static对局部变量和全局变量的作用不一样。

对于局部变量来说,用static修饰时,该变量在函数调用后的值一直保持上次的结果。

对于全局变量来说,用static修饰的全局变量表示这个全局变量只能在当前这个全局变量定义的文件内使用;如果没有static修饰,表示这个文件定义的全局变量也可以被其它文件调用。


举例如下:

#include<stdio.h>
static int a;  // 定义一个静态的全局变量,只能在本文件中引用
int b;  // 定义一个非静态的全局变量,在同一工程下的其他文件也可引用(需用extern关键字声明)
void main()
{
    a = 2;
    b = 4;
    printf("%d%d", a, b);
}
beition
推荐于2017-10-08 · 超过15用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:44万
展开全部
当然可以,静态变量的关键static对局部变量和全局变量的作用不一样。对于局部变量来说,用static修饰时,这个变量在函数调用后的值一直保持上次的结果。对于全局变量来说,用static修饰的全局变量表示这个全局变量只能在当前这个全局变量定义的文件内使用,如果没有static修饰,表示这个文件定义的全局变量也可以被其它文件调用。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bfb8612
2012-12-14
知道答主
回答量:49
采纳率:0%
帮助的人:37.4万
展开全部
不可以,全局变量的作用就是让整个程序的哪个位置的函数也好表达式也好语句也好,都可以调用他,如果他是动态变量,当一个地方调用后,他内存中的元素就被释放,别的函数再调用时是一个空内存,达不到全局变量的作用,那他跟局部变量还有啥区别。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鹏论
2012-12-14
知道答主
回答量:21
采纳率:0%
帮助的人:18.8万
展开全部
不可以,全局变量相当于一个常数,把他当成常数就好理解多了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦幻怪兽
2012-12-14 · TA获得超过5171个赞
知道大有可为答主
回答量:1786
采纳率:100%
帮助的人:707万
展开全部
可以,静态就是延长生存周期,没太多要求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式