欢迎访问文稿网!

字符串数组长度可以变化吗

范文之家 分享 时间: 加入收藏 我要投稿 点赞

字符串数组长度可以变化吗

    4.3.1 字符数组的定义和初始化

    定义并初始化字符数组有两种方法。

    1)用字符为字符数组赋初值

    例如:

      char word1[4]={'t', 'r', 'e', 'e'};

    定义了一个长度为4的字符数组word1,其下标变量对应的值如图4.3.1所示。

    img251

    

    图4.3.1 word1数组

    2)用字符串常量为字符数组赋初值

    例如:

      char word2[5]="t ree";

    定义了一个长度为5的字符数组word2,其下标变量对应的值如图4.3.2所示。

    img252

    

    图4.3.2 word2数组

    注意:word1和word2都是字符数组,但由于赋初值的方式不同,因此数组的大小是不同。这是由于C语言会自动在字符串常量的结尾添加一个终止符'',因此word2中的字符数(字符串长度)为4,而数组长度为5。

    在用字符串初始化字符数组时,如果在定义时字符数组的长度比字符串长度大,则自动为多余的元素赋初值''。例如:

      char word3[10]= "t ree";

    对应的字符数组word3如图4.3.3所示。

    img253

    

    图4.3.3 word3数组

    如果初始化时,字符数组的长度小于或等于字符个数,会产生错误。为避免这种错误,可以使用

      char word4[ ]="t ree";

    省略数组的长度,系统会根据初始化字符串的长度自动补上数组的长度,例如word4的长度即为5。

    使用字符数组,也必须避免下标越界。下面的程序可以通过编译,但可能在运行中产生错误。

    img254

221381
领取福利

微信扫码领取福利

微信扫码分享