字符序列与字符数组(一)
2014-03-08 11:20
204 查看
字符串("good")实际上是一串连续的字符序列,所以我们也可以用简单的字符数组来表示它。如:
理论上这数组可以存储长度为20的字符序列,但是它也可以存储比这短的字符序列,而且实际中常常如此。例如,foo在程序中可以只存储字符串"Hello"或者"Merrychristmas"。因此,字符数组经常被用于存储短于其总长的字符串,就形成了一种习惯在字符串的有效内容的结尾处加一个空字符(nullcharacter)来表示字符结束,它的常量表示可写为0或'\0'。
我们可以用下图表示foo(一个长度为20的字符数组)存储字符串"Hello"和"MerryChristmas":
这里我们定义了一个有6个元素的字符数组,并将它初始化为字符串Hello加一个空字符(nullcharacter'\0')。
除此之外,字符串还有另一个方法来进行初始化:用字符串常量。
因此,我们可以用下面两种方法的任何一种来初始化字符串myword:
在两种情况下字符串或数组mystring都被定义为6个字符长(元素类型为字符char):组成Hello的5个字符加上最后的空字符('\0')。在第二种用双引号的情况下,空字符('\0')是被自动加上的。
注意:同时给数组赋多个值只有在数组初始化时,也就是在声明数组时,才是合法的。象下面代码现实的表达式都是错误的:
charmyword[];
myword="Hello";//报错
myword[]="Hello";//报错
myword={'H','e','l','l','o','\0'};//报错
我们只有在数组初始化时才能够同时赋多个值给它。
但我们可以为他的元素单独赋值:
[/code]
[code]charfoo[20];
是一个可以存储最多20个字符类型数据的数组。可以表示为:
理论上这数组可以存储长度为20的字符序列,但是它也可以存储比这短的字符序列,而且实际中常常如此。例如,foo在程序中可以只存储字符串"Hello"或者"Merrychristmas"。因此,字符数组经常被用于存储短于其总长的字符串,就形成了一种习惯在字符串的有效内容的结尾处加一个空字符(nullcharacter)来表示字符结束,它的常量表示可写为0或'\0'。
我们可以用下图表示foo(一个长度为20的字符数组)存储字符串"Hello"和"MerryChristmas":
[code]
\0表示字符结束,尾部深色的部分,表示没有确定的值。 我们可以像初始化其它数组一样,将数组初始化为指定数值charmyword[]={'H','e','l','l','o','\0'};
这里我们定义了一个有6个元素的字符数组,并将它初始化为字符串Hello加一个空字符(nullcharacter'\0')。
除此之外,字符串还有另一个方法来进行初始化:用字符串常量。
因此,我们可以用下面两种方法的任何一种来初始化字符串myword:
charmyword[]={'H','e','l','l','o','\0'}; charmyword[]="Hello";
在两种情况下字符串或数组mystring都被定义为6个字符长(元素类型为字符char):组成Hello的5个字符加上最后的空字符('\0')。在第二种用双引号的情况下,空字符('\0')是被自动加上的。
注意:同时给数组赋多个值只有在数组初始化时,也就是在声明数组时,才是合法的。象下面代码现实的表达式都是错误的:
charmyword[];
myword="Hello";//报错
myword[]="Hello";//报错
myword={'H','e','l','l','o','\0'};//报错
我们只有在数组初始化时才能够同时赋多个值给它。
但我们可以为他的元素单独赋值:
myword[0]='B'; myword[1]='y'; myword[2]='e'; myword[3]='\0';
[/code]
相关文章推荐
- MMORPG大型游戏设计与开发(part6 of net)
- 个人密码安全策略
- linux学习笔记
- sql中ORDER SIBLINGS BY排序的含义
- 开放(关闭)端口、防火墙
- Implement strStr()
- START WITH...CONNECT BY PRIOR详解
- UVa 193 - Graph Coloring
- css细节很重要!
- CurrentCulture
- 深入学习JDK 线程池(之一)
- MySQL数据库缓存参数优化
- pat 1031
- LBS-基于位置服务(Location Based Service)
- How to create custom methods for use in spring security expression language annotations
- (转)Android学习:SeekBar实现音量调节
- jQuery tabs侧面显示
- ACM竞赛高手比其他程序员水平高很多吗?
- 0-1背包问题
- AIDL Service