c语言中定义一个字符数组,其中存放的是什么

来源:百度知道 编辑:UC知道 时间:2024/06/10 16:10:56
c语言中定义一个字符数组,比如定义个char a[60],还没初始化,那么是a[0]中存放的'\0'还是a[59]中存放的是'\0',还是全部存放的都是'\0'?
如果初始化char a[60]="1234567890",那在最后一个字符'0'后会自动加'\0'吗?
再补充一下,如果是int a[60]=1234567890,整型数组也是以'\0'为结束符吗?也会在定义的最后一个元素后自动加'\0'吗?如何求出整型数组的长度?不好意思,我比较菜。

在C语言中,字符数组中存放的内容中字符的ASC码。如果在定义过程中没有赋初值,则数组中的元素都为0。如
char c[10];

定义了c是一个字符数组共有10个元素c[0]、c[1]……c[9],因为没有赋初值,所以这10个元素的值都是0。

如果定义时赋了初值,或在程序中赋元素的值,则该元素保存对应字符的ASC码值。如:

char c[10]="ABCD";

则元素
a[0]=65 //'A'的ASC码是65

a[1]=66 //'B'的ASC码是66
a[2]=67 //'C'的ASC码是67
a[3]=68 //'D'的ASC码是68
在程序中,a[0]='A'和a[0]=65是等价的。

验证:

char a[10]="ABCD";

printf("%d %c\n",a[0],a[0]); //输出65 A

printf("%d %c\n",a[3],a[3]); //输出68 D
a[3]=65;

printf("%d %c\n",a[3],a[3]); //输出65 A
printf("%d",a[6]); // 输出0 因为没有赋a[6]初值,所以其值为0

你定义的char a[60],因为数组是从a[0]开始计算的 如果你没有赋值
那么默认的是全是0 也就是全是空格 以内你定义的是字符型。
‘\0’是系统给你加的 它的位置是a[60]的60个元素的后面 不占用你定义的60个元素
你定义的是字符数