zoukankan      html  css  js  c++  java
  • 字符序列与字符数组(一)

    字符串("good")实际上是一串连续的字符序列,所以我们也可以用简单的字符数组来表示它。如:

    char foo [20];
    是一个可以存储最多20个字符类型数据的数组。可以表示为:

    理论上这数组可以存储长度为20的字符序列,但是它也可以存储比这短的字符序列,而且实际中常常如此。例如,foo在程序中可以只存储字符串"Hello" 或者"Merry christmas"。因此,字符数组经常被用于存储短于其总长的字符串,就形成了一种习惯在字符串的有效内容的结尾处加一个空字符(null character)来表示字符结束,它的常量表示可写为0 或''

    我们可以用下图表示foo(一个长度为20的字符数组) 存储字符串"Hello" 和"Merry Christmas" : 


     

    表示字符结束,尾部深色的部分,表示没有确定的值。

    我们可以像初始化其它数组一样,将数组初始化为指定数值
    char myword[] = { 'H', 'e', 'l', 'l', 'o', '' };

    这里我们定义了一个有6个元素的字符数组,并将它初始化为字符串Hello 加一个空字符(null character '')。

    除此之外,字符串还有另一个方法来进行初始化:用字符串常量

    因此,我们可以用下面两种方法的任何一种来初始化字符串myword:

    char myword[] = { 'H', 'e', 'l', 'l', 'o', '' };
    char myword[] = "Hello"; 

    在两种情况下字符串或数组mystring都被定义为6个字符长(元素类型为字符char):组成Hello的5个字符加上最后的空字符('')。在第二种用双引号的情况下,空字符('')是被自动加上的。

    注意同时给数组赋多个值只有在数组初始化时,也就是在声明数组时,才是合法的。象下面代码现实的表达式都是错误的:

    char myword[];

    myword="Hello";        //报错

    myword[]="Hello";      //报错

    myword = { 'H', 'e', 'l', 'l', 'o', '' };    //报错

    我们只有在数组初始化时才能够同时赋多个值给它。

    但我们可以为他的元素单独赋值:

    myword[0] = 'B';
    myword[1] = 'y';
    myword[2] = 'e';
    myword[3] = '';
     
     

  • 相关阅读:
    文件操作小练习
    阶段练习1
    copy小练习
    小练习
    str 小列题
    条款50:使用自定义的new以及delete的时机会
    条款49:了解new-handle行为
    简单的说一下:tarits技法就是一种模板元编程,起可以将本来处于运行期的事拉到编译期来做,增加了运行效率。 看以非模板元编程的例子,就是前面的那个例子:
    条款47:请使用traits class表示类型信息
    条款46:需要类型转换的时候请为模板定义非成员函数
  • 原文地址:https://www.cnblogs.com/guozqzzu/p/3587681.html
Copyright © 2011-2022 走看看