c 字符数组的初始化
2014-11-23 11:16
169 查看
字符数组的初始化可以有以下几种方式:
2.字面值长度刚好大于或等于数组长度+1时,字面值的元素将从0号开始依次填充字符数组,直到越界’,此时字符串数组末位不是‘\0’.
一般来说,字符数组都以‘\0’结尾。在用printf("%s", str)打印字符串str,程序将从第0号元素开始打印,直至遇到‘\0’停止打印。如果一个字符数组初始化时其数组长度小于字面值的长度(char str2[12]="hello,world." 右面双引号中包含12个字符),那么printf的打印结果将出现乱码,或者程序崩溃。
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; }