谁能给我讲讲C语言中字符串是怎么定义的?自己看书不理解.
3个回答
展开全部
字符串可以看成就是一个字符类型的数组。
我想整型的数组你应该理解,如: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'的存放位置, 其长度就是可见字符个数。
根据以上简单提示再看看书,理解一下吧。
我想整型的数组你应该理解,如: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'的存放位置, 其长度就是可见字符个数。
根据以上简单提示再看看书,理解一下吧。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
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 时,你可以很清楚是牌的花色是红桃
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 时,你可以很清楚是牌的花色是红桃
追问
你弄错了吧?能不能给讲讲字符串怎么理解.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询