您的位置:首页 > 其它

c 字符数组的初始化

2014-11-23 11:16 169 查看
字符数组的初始化可以有以下几种方式:

char str[6]={'h','e','l','l','o'};
char str[6]="hello";
char str[ ] ="hello";
char str[ ] ={'h','e','l','l','o'};
1.当字符数组初始化时,字面值长度小于数组长度时,剩余的数组元素依次补结束标记符‘\0’.

2.字面值长度刚好大于或等于数组长度+1时,字面值的元素将从0号开始依次填充字符数组,直到越界’,此时字符串数组末位不是‘\0’.

一般来说,字符数组都以‘\0’结尾。在用printf("%s", str)打印字符串str,程序将从第0号元素开始打印,直至遇到‘\0’停止打印。如果一个字符数组初始化时其数组长度小于字面值的长度(char str2[12]="hello,world." 右面双引号中包含12个字符),那么printf的打印结果将出现乱码,或者程序崩溃。

#include<stdio.h>

int main()
{
char str[]="hello,world.";//等价于...{'h', 'e', 'l', 'l', '0', ',', 'w', 'o' , 'r', 'l', 'd', '.', '\0'};
char str2[12]="hello,world.";//等价于...{'h', 'e', 'l', 'l', '0', ',', 'w', 'o', 'r', 'l', 'd', '.'};
printf("str:%s\n",str);
printf("str2:%s\n",str2);
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: