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
C语言并没有字符串这样的类型是用字符数组存的。
于是 字符串数组 其实就是二维字符数组
比如
char s[10][100]
表示10个字符串, 每个最长100个字节。
#include<stdio.h>void main()
{
char str[50]//字符数组
gets(str)//接受你输入的字符
puts(str)//输出字符
}