字符数组的初始化

时间:2021-11-26 19:51:17

#有关字符数组的初始化的若干问题#

一、注意事项:

1.字符数组的初始化,初始化时赋予的自然是字符(要加单引号)。

2.赋予字符也可以通过赋予相应字符的ASCII码(去掉单引号)或赋予字符串(只加双引号)来进行。

3.对字符数组完全不进行初始化,则各元素随机。

4.对字符数组进行不完全初始化,则从低地址(a[i]中i从0开始)到高地址逐个字符依次初始化,未被初始化的元素默认为空(即'\0'),而不是随机生成。

5.初始化时切勿超出字符数组长度。

6.初始化时{}内为空,则默认为该字符数组初始化全空(所有元素都是空字符'\0')

7.'\0'是空字符


二、代码演示及说明

#include <stdio.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数组的扩展*/
    printf("a[10]  : ");
    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]);
    printf("c[10]  : ");
    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]);
    printf("e[10]  : ");
    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]);
    printf("d1[10] : ");
    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;
}

运行结果:
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.