数组部分初始化
- 一维数组
例如int a[10]={0,1,2,3,4};定义a数组有10个元素,但只给前面5个元素赋初值,后5个元素值为0。
- 二维数组
int a[3][4]={{1},{5},{9}};定义3行4列的数组a,只对各行第1列的元素赋初值,其余元素值为0。int a[3][4]={{1,2},{},{9}};定义3行4列的数组a,可以对某一行不赋值。
- 字符数组
char c[20]={‘I’,’ ‘,‘a’,‘m’,’ ‘,‘p’,‘r’,‘e’,‘t’,‘t’,‘y’};字符赋给前11个元素,其余元素自动定义为空字符(即’\0’)。
字符串和字符数组
在c语言中,将字符串作为字符数组处理。例如char c[20]={‘I’,’ ‘,‘a’,‘m’,’ ‘,‘p’,‘r’,‘e’,‘t’,‘t’,‘y’};就是用一个一维的字符数组存放一个字符串"I am pretty"中的字符。也可以用字符串常量对字符数组初始化,例如char c[]={“I am pretty”};与char c[]={‘I’,’ ‘,‘a’,‘m’,’ ‘,‘p’,‘r’,‘e’,‘t’,‘t’,‘y’,’\0’};等价,其中花括号可以省略。注意,系统对字符常量自动加一个’\0’作为结束符,用它作一个供辨别的标志,不会产生附加的操作或增加有效字符,例如"I am pretty"共有11个字符,但在内存中占12个字节,而strlen©=strlen(“I am pretty”)=11。