分类：电脑/网络-程序设计-C/C++
问题：c语言函数中的memset()是怎么用的？英文单词尾数字母统计使 
单词尾数字母统计使用的频率int i,j,k;char word[21],*p;for(i=0;i<maxline;i++){   p=xx[i];    j=0;//为什么要定义此语句？    memset(word,0,21);//此函数的作用及用法    while(*p)    {  word[j++]=*p++;       if(*p) continue;    }    strlwr(word);    for(k=0;k<10;k++)      if(word[str单词尾数字母统计使用的频率int i,j,k;char word[21],*p;for(i=0;i<maxline;i++){   p=xx[i];    j=0;//为什么要定义此语句？    memset(word,0,21);//此函数的作用及用法    while(*p)    {  word[j++]=*p++;       if(*p) continue;    }    strlwr(word);    for(k=0;k<10;k++)      if(word[strlen(word)-1]==word(k)       {  yy[k]++;          break;        }      j=0;//这里又重复了是什么意思？    memset(word,0,21);//为什么又要来这么一句？    while(*p&&(!isalpha(*p))) p++;   }]
回答：j=0;是一句初始化语句，在int j;声明变量后变量的值是未知的，所以要在使用前赋初值。
memset(word,0,21);这个函数第一参数是一个指针，指向目标内存的首地址，第二个参数是你要赋给指定内存块中各个字节的值。第三个参数是被操作内存块的字节数。连在一起这个语句的意思是，从word指向的内存地址开始的21个字节的内存，赋成0。其实也是一个初始化操作。