5.4 數(shù)組的初始化
5.4.1 數(shù)組初始化
C語言允許在說明時對全局?jǐn)?shù)組和靜態(tài)局部數(shù)組初始化,但不能對非靜態(tài)局部數(shù)組初始化。
與其它變量相似,數(shù)組初始化的一般形式如下:
type-specifier array_name[size1]...[sizen]={value-list};
數(shù)值表是一個由逗號分隔的常量表。這些常量的類型與類型說明相容,第一個常量存入數(shù)組的第一個單元,第二個常量存入第二個單元,等等,注意在括號“ }”后要加上分號。
下列中一個1 0元素整型數(shù)組被初始化裝入數(shù)字1到10:
int i[10]={1,2,3,4,5,6,7,8,9,10 } ;
這意味著i[0]的值為1,而i[9]的值為10。
存放字符串的字符數(shù)組的初始化可采用如下簡化的形式:
char array_name[size] = "string";
例如,以下代碼段將str 初始化為”hello”。
char str[6] = "hello";
上面代碼產(chǎn)生和下面代碼相同的結(jié)果:
char str[6]={’h’,’ e ’ ,’ l ’ ,’ l ’ ,’ o ’ ,’\o ’};
因?yàn)镃語言中的字符串都以空( NULL)字符為終結(jié),故要確認(rèn)定義的數(shù)組足夠長以存放空字符。這就是為什么h ello只有5個字符,而str 要有6個字符長的原因。使用字符串常量時,編譯程序自動地在末尾加上空字符。
多維數(shù)組初始化的方法與一維數(shù)組相同,例如,下式將sqrs初始化為從1到1 0及它們各自的平方數(shù)。
int sqrs[10][2]={
1,1,
2,4,
3,9,
4,1 6 ,
5,2 5 ,
6,3 6,
7,4 9 ,
8,6 4 ,
9,8 1,
1 0,1 0 0 ,
} ;
5.4.1 數(shù)組初始化
C語言允許在說明時對全局?jǐn)?shù)組和靜態(tài)局部數(shù)組初始化,但不能對非靜態(tài)局部數(shù)組初始化。
與其它變量相似,數(shù)組初始化的一般形式如下:
type-specifier array_name[size1]...[sizen]={value-list};
數(shù)值表是一個由逗號分隔的常量表。這些常量的類型與類型說明相容,第一個常量存入數(shù)組的第一個單元,第二個常量存入第二個單元,等等,注意在括號“ }”后要加上分號。
下列中一個1 0元素整型數(shù)組被初始化裝入數(shù)字1到10:
int i[10]={1,2,3,4,5,6,7,8,9,10 } ;
這意味著i[0]的值為1,而i[9]的值為10。
存放字符串的字符數(shù)組的初始化可采用如下簡化的形式:
char array_name[size] = "string";
例如,以下代碼段將str 初始化為”hello”。
char str[6] = "hello";
上面代碼產(chǎn)生和下面代碼相同的結(jié)果:
char str[6]={’h’,’ e ’ ,’ l ’ ,’ l ’ ,’ o ’ ,’\o ’};
因?yàn)镃語言中的字符串都以空( NULL)字符為終結(jié),故要確認(rèn)定義的數(shù)組足夠長以存放空字符。這就是為什么h ello只有5個字符,而str 要有6個字符長的原因。使用字符串常量時,編譯程序自動地在末尾加上空字符。
多維數(shù)組初始化的方法與一維數(shù)組相同,例如,下式將sqrs初始化為從1到1 0及它們各自的平方數(shù)。
int sqrs[10][2]={
1,1,
2,4,
3,9,
4,1 6 ,
5,2 5 ,
6,3 6,
7,4 9 ,
8,6 4 ,
9,8 1,
1 0,1 0 0 ,
} ;