在c语言中,举例说下字符串定义和初始化?字符串定义有几种方式?字符串初始化有几种方式?

如题所述

字符串定义一般有两种方式
1. 字符数组方式
char s[100];
2.字符指针方式
char * s;
s=(char *)malloc(100);

3.初始化,如果是数组可以在定义的时候初始化
char s[100]={0};
也可以 memset( s, 0, sizeof(s) );
如果是指针 memst( s, 0, 100 );

有时候也可以很简单的只把第一个字符初始化,如s[0]='\0',或者 *s='\0';追问

1、s=(char *)malloc(100); 这个怎么理解

追答

malloc 是动态申请内存的函数
s=(char *)malloc(100) ; 就是申请一块100个字节的内存,并把这块内存的首地址赋值给字符指针变量s,这样s就指向这块内存了,后续的代码通过s就可以在这块内存中存取数据
char s[100]; 则是自动申请一块100字节的内存,内存的首地址也是s

追问

2、
也可以 memset( s, 0, sizeof(s) );
如果是指针 memst( s, 0, 100 );

这两句话也不明白哦

追答

memset的作用是把 指针指向的内存初始化为你设定的值,
memset( s, 0, sizeof(s) ); //把s指向的内存初始化为0,sizeof会自动算出s所占的空间大小
memset( s,0,100); //同上,但是由于此时s是指针,sizeof(s)的结果等于4,因此不能像数组那样直接使用sizeof,而直接写上你申请的内存的大小

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网