c语言中为什么要用static声明变量。它的具体作用是什么,请举例说明

 我来答
tidecao2006
2011-11-05 · TA获得超过1229个赞
知道小有建树答主
回答量:842
采纳率:0%
帮助的人:806万
展开全部
如果static申明的是全局变量,那么这个全局变量只能在这个编译单元(文件)使用,利于模块封装。
如果static申明的是局部变量,那么函数返回时将不会释放该变量空间。

例如,main.c里面定义了一个全局变量static int a;那么另外一个文件code.c将不能使用它,即使使用extern int a来申明它。
定义一个函数void func() {static int a = 0; a++;}那么每次执行该函数a+1,即第一次调用func,a为1,第二次为2,第三次为3……和全局变量很像,但其他函数是不能使用a 的
追问
c语言也能支持继承?而且还是以模块而不是类继承?
adoqq_bd
推荐于2016-09-28 · TA获得超过7051个赞
知道大有可为答主
回答量:1818
采纳率:63%
帮助的人:1673万
展开全部
//静态变量的生存期是整个程序的运行期,它被定义后就一直存在,要保留某个函数的中间结果,就可以用静态变量,比如下面这个程序

#include <stdio.h>
int f()
{
static int i=1;
printf("%d ",i);
i++;
return i;
}
int main()
{
f();
f();
f();
f();
return 0;
}

1 2 3 4 请按任意键继续. . .
追问
意思是static定义的变量能当全局变量用?那我们可以只用全局变量就ok了啊,那它有存在的价值吗?
追答
不是的,你把生存期和作用域混淆了,它的作用域仍然只是定义它的函数空间,就像这个例子里的i,只有在f()函数里才能访问,但i一直到程序结束才消失
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leiyangbdwk
2011-11-05 · TA获得超过3296个赞
知道大有可为答主
回答量:4975
采纳率:12%
帮助的人:4472万
展开全部
比如你在一个函数中定义了一个i,
你想在每次调用的时候,显示了共调用了多少次,
而且你又不想用全局变量,
那么你就要定义成static类型的。

如果你实现了我说的功能,那你就可以理解static的作用了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hongyaofu
2011-11-06 · TA获得超过1088个赞
知道大有可为答主
回答量:1227
采纳率:87%
帮助的人:550万
展开全部
大家说的好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式