【摘要】:注意:word1和word2都是字符数组,但由于赋初值的方式不同,因此数组的大小是不同。这是由于C语言会自动在字符串常量的结尾添加一个终止符'\0',因此word2中的字符数为4,而数组长度为5。
4.3.1 字符数组的定义和初始化
定义并初始化字符数组有两种方法。
1)用字符为字符数组赋初值
例如:
char word1[4]={'t', 'r', 'e', 'e'};
定义了一个长度为4的字符数组word1,其下标变量对应的值如图4.3.1所示。
图4.3.1 word1数组
2)用字符串常量为字符数组赋初值
例如:
char word2[5]="t ree";
定义了一个长度为5的字符数组word2,其下标变量对应的值如图4.3.2所示。
图4.3.2 word2数组
注意:word1和word2都是字符数组,但由于赋初值的方式不同,因此数组的大小是不同。这是由于C语言会自动在字符串常量的结尾添加一个终止符'\0',因此word2中的字符数(字符串长度)为4,而数组长度为5。
在用字符串初始化字符数组时,如果在定义时字符数组的长度比字符串长度大,则自动为多余的元素赋初值'\0'。例如:
char word3[10]= "t ree";
对应的字符数组word3如图4.3.3所示。
图4.3.3 word3数组
如果初始化时,字符数组的长度小于或等于字符个数,会产生错误。为避免这种错误,可以使用
char word4[ ]="t ree";
省略数组的长度,系统会根据初始化字符串的长度自动补上数组的长度,例如word4的长度即为5。
使用字符数组,也必须避免下标越界。下面的程序可以通过编译,但可能在运行中产生错误。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。