c语言的static与函数变量

一个c函数char*getdate(){staticchardate[10];...returndate;}这里date是static,即使这个函数返回后,仍可以在调用它... 一个c函数
char *getdate(){
static char date[10];
...
return date;
}
这里date是static,即使这个函数返回后,仍可以在调用它的函数里使用这个变量,但如果定义为char date[10],则date只是在函数栈中分配空间,出了函数就有可能被覆盖,问题是如果是static char date[10],是否后面只能对它赋值一次?如果后面是将11-FEB-11一个字符一个字符的赋给date,是否可行?谢谢!
展开
 我来答
西西泸
推荐于2017-09-03 · TA获得超过1460个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:260万
展开全部
你在函数中定义static变量,在定义的时候须得给他赋值,而且在程序运行中,只有第一次调这个函数时你所赋的值才有效果,之后每次调此函数,都不会重新给他赋值了(例如staitc a = 10,下次跑这个函数时不会跑这句话了。)。不过你可以在函数中改变这个值,并且这个值会被保留下来,当你下次调这个函数的时候,得到的值会是你最后给变量所赋的值。
static 变量 是可以改变的。只是在初始化时候只会赋值一次而已。。。比如你在一个函数里定义 X 变量,那么你每次调这个函数都会去定义这个变量吧,但是如果你把 X 定义为 static 类型,那么你只会第一次掉它的时候会去定义它,后面调这个函数时,X 变量就已经存在了不会再去定义。但是它的值还是可以改变的。你可以通过赋值语句改变static变量的值 .
rajwp03
2011-05-19 · TA获得超过345个赞
知道答主
回答量:361
采纳率:0%
帮助的人:0
展开全部
关键字static的作用是什么?
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:
•; 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
•; 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
•; 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

例子可以参考我的下面URL
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e43033c
2011-05-16 · TA获得超过1130个赞
知道小有建树答主
回答量:933
采纳率:100%
帮助的人:939万
展开全部
可以 呀,静态变量只是只能第一次定义有效,因为在这一次就确定了存储空间,但是后面可以改变这段空间中的值,就是重新赋值是允许的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
quecang96
2011-05-16 · 超过21用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:57.8万
展开全部
关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: ; 在函数体,一个被声明为静态的变量在这一
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式