当单个字符赋值时,系统不会自动加\0,整体赋值时系统自动赋\0但不记入字符串长度。
如:
char ch1[]={'h','e','l','l','o'};
char ch2[]={"hello"};
其中ch1所占长度为5个字节,ch2占6个字节。原因是结尾是否有\0。两个字符串长度均为5。
字符数组的输出:逐个字符输出:%c,整个字符串一次输出:%s 用%s输出时,输出项是字符数组名,不是数组元素名。 如果字符数组内包含一个以上\0,则遇到第一个就停止输出。
字符数组的输入:如果只写数组名,则数组名前面不用加&。对于scanf输入字符或字符串时,要在后面加上最大长度的参数。
strlen函数和sizeof求字符数组的长度和所占字节
- strlen:格式为 strlen(字符数组名)
sizeof:格式为 sizeof(字符数组名)
strlen用来计算字符数组中字符串的长度,sizeof当前是用来计算这个字符数组共占了多大的空间。
eg: