c 字符数组的初始化

来源:互联网 发布:知乎日报吐槽 编辑:程序博客网 时间:2024/04/30 05:17

字符数组的初始化可以有以下几种方式:

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;}


0 0
原创粉丝点击