大家好,又见面了,我是你们的朋友全栈君。
转载至 这里
代码编译运行环境:VS2017 Win32 Debug
1.字符数组的初始化方式
C语言中表示字符串有两种方式,数组和指针,字符数组是我们经常使用的方式。变量的定义包括指明变量所属类型、变量名称、分配空间以及初始化。可以看出,变量的初始化是变量定义的一部分。除了const变量需要显示初始化以外,其它变量如果在定义时未显示初始化,编译器会为变量以默认值进行初始化。变量的赋值和初始化有着本质的区别,字符数组也是如此,具体见博主的另一篇博客:认识初始化。
1.1逐个字符初始化
当定义一个字符数组时,可以采用逐个字符初始化的方式:
代码语言:rust复制char str[10]={ 'h','e','l','l','o'};
当显示指定的字符不足字符数组的长度时,编译器将剩余字符置为空字符’ ’。
1.2字符串常量来初始化字符数组
在C语言中,将字符串作为字符数组来处理,因此可以使用字符串来初始化字符数组。
代码语言:rust复制char str[]={
"hello"};
也可以省略花括号。
代码语言:rust复制char str[10]="hello";
不及字符数组长度时,剩余字符置为空字符’ ’。因此,我们不难得出,当为一个字符数组初始化为空字符数组的做法有如下几种:
代码语言:c#复制char test1[256]="";
char test2[256]={
""};
char test3[256]={
0};
char test3[256]={
'