首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教 static数组做函数参数

2012-05-07 
请问 static数组做函数参数。将一个字符串中的某个指定的字符删去请问以下主程序中 字符数组 str必须定义为

请问 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一个数组出来

热点排行