谁能给我讲讲C语言中字符串是怎么定义的?自己看书不理解.

如题所述

字符串定义其实很简单在c/c++语言中定义一个字符串可以使用如下的语法:

char *s1=“string1”;//定义字符串常量,指针形式

char s2[]=“string2”;//定义字符串常量,数组形式

char *s3=new char[10];//定义字符串变量并分配内存 指针形式

strcpy(s3,"string3");//为s3赋值

char s4[10];//定义字符串变量,数组形式

strcpy(s4,"string4");//为s4赋值

以上四种方法都能定义一个字符串,同时通过字符串在内存中的分布可以清楚地知道是什么情况

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-29
字符串可以看成就是一个字符类型的数组。
我想整型的数组你应该理解,如:int ai[10]; 就是定义一个数组变量,其名称为ai,它的容量为10,即ai数组变量中,可以存放10个整型数据。

当变量类型为char时,这样的数组就叫作字符数组,如:char ac[12]; 其名称为ac,它的容量为12,即ac数组变量中,可以存放12个字符型数据。

但是我们一般情况下,很少真正的应用字符数组,而是将之当作一个字符串来使用!
字符串与字符型数组的唯一区别就是:字符串中存放的有效数据最大为容量数-1,因为,系统规定,对于字符串,一定要有一个结束标志,这个标志为字符'\0',其ASCII值为0。
系统根据这个标志来判断字符串的长度。
如:上边定义的char ac[12],最多只能存放11个字符。
strcpy( ac , "hello" ); //这里,按数组来看,就是:
ac[0]='h'
ac[1]='e'
ac[2]='l'
ac[3]='l'
ac[4]='o'
ac[5]='\0'

以双引号引起来的一串字符叫作字符串常量,其占空间大小为可见字符个数+1,加的1就是指'\0'的存放位置, 其长度就是可见字符个数。

根据以上简单提示再看看书,理解一下吧。本回答被提问者和网友采纳
第2个回答  2012-08-29
枚举的主要目的,我觉得就是使代码的可读性更好。如果没有枚举,其所要实现的功能也可以通过其它方式实现。
enum 枚举名{枚举值1,枚举值2,枚举值3,.....}
枚举值本身就是一个符号,但是它又有一个int值的属性。可以看看书,就不多说了。枚举值就是一些命名,通过其命名就能知道其真正的意义。

比如一个扑克牌花色的枚举类型
enum color{heart,spade,diamond,club}
你也可以自己默认用0表示heart,1表示spade,2表示diamond,3表示club。在判断花色时,
if(color==0)....
else if(color==1)....
else if(color==2)...
else...
这样,阅读性很差,你根本无法通过这些数字判断出来时什么花色,可能要开相关的文档。非常不利于排查错误和后期的维护。

你也可以使用define定义
#define heart 0
#define spade 1
#define diamond 2
#define club 3
但是这么多个define明显是不必要的,enum就不让你写这么多define了

访问枚举变量就用枚举名.枚举值
这样在程序的其它地方出现color.heart 时,你可以很清楚是牌的花色是红桃追问

你弄错了吧?能不能给讲讲字符串怎么理解.

相关了解……

你可能感兴趣的内容

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