#有关字符数组的初始化的若干问题#
一、注意事项:
1.字符数组的初始化,初始化时赋予的自然是字符(要加单引号)。
2.赋予字符也可以通过赋予相应字符的ASCII码(去掉单引号)或赋予字符串(只加双引号)来进行。
3.对字符数组完全不进行初始化,则各元素随机。
4.对字符数组进行不完全初始化,则从低地址(a[i]中i从0开始)到高地址逐个字符依次初始化,未被初始化的元素默认为空(即'\0'),而不是随机生成。
5.初始化时切勿超出字符数组长度。
6.初始化时{}内为空,则默认为该字符数组初始化全空(所有元素都是空字符'\0')
7.'\0'是空字符
二、代码演示及说明
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
int main()
{
int i=0;
char a[10]; /*字符数组不进行初始化,会随机*/
char b[10]={}; /*初始化为全空*/
char c[10]={0}; /*方式为【用若干字符的ASCII码逐一对字符数组进行初始化】未被初始化的元素为空*/
char d[10]={'0'}; /*''中被看作用来初始化某元素的字符,方式为【用若干字符逐一对字符数组进行初始化】未被初始化元素初始化为空*/
char e[10]={"0"}; /*""中被看作用来初始化某些元素字符串,方式为【用字符串直接对字符数组进行初始化】超出字符串长度的未被初始化元素初始化为空*/
char c1[10]={0,33,34,35,36,37,38,39,40,41}; /*c1为c数组的扩展*/
char d1[10]={'\0','!','\"','#','$','%','&','\'','\(','\)'}; /*d1为d数组的扩展*/
char e1[20]={"\0,!,\",#,$,%,&,\',\(,\)."}; /*e1为e数组的扩展*/
{
int i=0;
char a[10]; /*字符数组不进行初始化,会随机*/
char b[10]={}; /*初始化为全空*/
char c[10]={0}; /*方式为【用若干字符的ASCII码逐一对字符数组进行初始化】未被初始化的元素为空*/
char d[10]={'0'}; /*''中被看作用来初始化某元素的字符,方式为【用若干字符逐一对字符数组进行初始化】未被初始化元素初始化为空*/
char e[10]={"0"}; /*""中被看作用来初始化某些元素字符串,方式为【用字符串直接对字符数组进行初始化】超出字符串长度的未被初始化元素初始化为空*/
char c1[10]={0,33,34,35,36,37,38,39,40,41}; /*c1为c数组的扩展*/
char d1[10]={'\0','!','\"','#','$','%','&','\'','\(','\)'}; /*d1为d数组的扩展*/
char e1[20]={"\0,!,\",#,$,%,&,\',\(,\)."}; /*e1为e数组的扩展*/
printf("a[10] : ");
for(i=0;i<=8;i++)
printf("%c,",a[i]);
printf("%c.\n",a[9]);
for(i=0;i<=8;i++)
printf("%c,",a[i]);
printf("%c.\n",a[9]);
printf("b[10] : ");
for(i=0;i<=8;i++)
printf("%c,",b[i]);
printf("%c.\n",b[9]);
for(i=0;i<=8;i++)
printf("%c,",b[i]);
printf("%c.\n",b[9]);
printf("c[10] : ");
for(i=0;i<=8;i++)
printf("%c,",c[i]);
printf("%c.\n",c[9]);
for(i=0;i<=8;i++)
printf("%c,",c[i]);
printf("%c.\n",c[9]);
printf("d[10] : ");
for(i=0;i<=8;i++)
printf("%c,",d[i]);
printf("%c.\n",d[9]);
for(i=0;i<=8;i++)
printf("%c,",d[i]);
printf("%c.\n",d[9]);
printf("e[10] : ");
for(i=0;i<=8;i++)
printf("%c,",e[i]);
printf("%c.\n",e[9]);
for(i=0;i<=8;i++)
printf("%c,",e[i]);
printf("%c.\n",e[9]);
printf("c1[10] : ");
for(i=0;i<=8;i++)
printf("%c,",c1[i]);
printf("%c.\n",c1[9]);
for(i=0;i<=8;i++)
printf("%c,",c1[i]);
printf("%c.\n",c1[9]);
printf("d1[10] : ");
for(i=0;i<=8;i++)
printf("%c,",d1[i]);
printf("%c.\n",d1[9]);
for(i=0;i<=8;i++)
printf("%c,",d1[i]);
printf("%c.\n",d1[9]);
printf("e1[20] : ");
for(i=0;i<=19;i++)
printf("%c",e1[i]);
return 0;
}
for(i=0;i<=19;i++)
printf("%c",e1[i]);
return 0;
}
运行结果:
a[10] : @, ,? , , , , , .
b[10] : , , , , , , , , , .
c[10] : , , , , , , , , , .
d[10] : 0, , , , , , , , , .
e[10] : 0, , , , , , , , , .
c1[10] : ,!,",#,$,%,&,',(,).
d1[10] : ,!,",#,$,%,&,',(,).
e1[20] : ,!,",#,$,%,&,',(,).
Process returned 0 (0x0) execution time : 0.047 s
Press any key to continue.
b[10] : , , , , , , , , , .
c[10] : , , , , , , , , , .
d[10] : 0, , , , , , , , , .
e[10] : 0, , , , , , , , , .
c1[10] : ,!,",#,$,%,&,',(,).
d1[10] : ,!,",#,$,%,&,',(,).
e1[20] : ,!,",#,$,%,&,',(,).
Process returned 0 (0x0) execution time : 0.047 s
Press any key to continue.