首页 百科知识 字符串数组长度可以变化吗

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

时间:2023-10-16 百科知识 版权反馈
【摘要】:注意:word1和word2都是字符数组,但由于赋初值的方式不同,因此数组的大小是不同。这是由于C语言会自动在字符串常量的结尾添加一个终止符'\0',因此word2中的字符数为4,而数组长度为5。

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语言会自动在字符串常量的结尾添加一个终止符'\0',因此word2中的字符数(字符串长度)为4,而数组长度为5。

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

  char word3[10]= "t ree";

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

img253

图4.3.3 word3数组

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

  char word4[ ]="t ree";

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

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

img254

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈