c语言中,函数中变量定义static有什么作用?遇到一个怪题(在线)

书上有个题,在函数中变量定义成static去掉后就有乱码,这里的static有什么作用?(菜鸟)#include"stdio.h"#include"string.h"ch... 书上有个题,在函数中变量定义成static去掉后就有乱码,这里的static有什么作用?(菜鸟)

#include "stdio.h"
#include "string.h"
char*test(char*ch)
{
static char buf[80];//如果去掉就错了
strcpy(buf,ch);
return buf;
}

void main()
{
printf("%s\n",test("abcd"));
printf("%s\n",test("a"));

}
展开
 我来答
百度网友edd6353bd
推荐于2016-06-24 · TA获得超过1162个赞
知道小有建树答主
回答量:2513
采纳率:0%
帮助的人:1427万
展开全部
//静态变量不随函数的结束,而回收空间,因为它的空间分配在静态数据区,相当于全局变量
//如果去掉的static的话,那就是个局部变量,它随着函数运行结束,空间被回收了,所以在返回的时候,是一个空地址,故出错

在百度上搜一搜,内存与指针管理,有更详细的解释!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
难得对口大文章X
2009-03-21 · TA获得超过239个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:0
展开全部
static char buf[80];//
static定义静态变量~~
第一次赋值后值就没法改变~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式