读书人

请教 static数组做函数参数

发布时间: 2012-05-07 12:40:40 作者: rapoo

请问 static数组做函数参数。
将一个字符串中的某个指定的字符删去

请问以下主程序中 字符数组 str必须定义为 static 吗?
不加static 结果也是对的。
file1.c(文件1)
main( )
{extern enter_string( );
extern delete_string ( );
extern print_string( );
char c;
static char str[80];
enter_string(str);
scanf(“%c”,&c);
delete_string(str,c);
print_string(str);}

file2.c(文件2)
#include ”stdio.h”
extern enter_string(str)
char str[80];
{gets (str);}

file3.c(文件3)
extern delete_string(str,ch)
char str[ ],ch;
{int i,j;
for(i=j=0;str[i]!=’\0’;i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j]=’\0’;

file4.c(文件4)
extern print_string(char str[ ])
{ printf(“%s”,str);
}




[解决办法]
不需要
除非你的数组特别大,比如1M,
超过栈的大小的时候,才必须采用static


[解决办法]
LZ这么多么远古的C语法呀

static那个是不需要的,static变量分配在静态存储区,没看出LZ的程序里有需要使用静态存储区的必要

如果是担心临时变量太大导致栈溢出,可以malloc或者New一个数组出来

读书人网 >C语言

热点推荐