二維陣列的宣告與使用
文章推薦指數: 80 %
(5) char a[3][5] = {"Book", "Dog", "Fish"}; // 這個陣列宣告方式基本上與上例(4)相同,其概念是用「字串」去包 含「字元」,寫法要簡潔的多。
但使用時要記得每個字 ...
二維陣列的宣告與使用
◎
概念:如果要大量儲存同一種型態、而且彼此又有密切關係的「表格式」資料,例如數學中的矩陣,這時候就應將其宣告並設定為「二維陣列」。
◎語法範例:
(1) int a[50][3];
//宣告整數二維陣列a,其內容可以看成是一個棋盤表格,共有50列(橫排),每列3個元素;
例如要儲存50位同學的三科成績,就可以這樣宣告。
其中第1位同學的第1科成績是
a[0][0],第5位同學的第3科成績是a[4][2],餘類推。
(※記得陣列的起始元素要從0開始)
(2) int a[3][4]={{2,5,7,1},{9,4,3,15},{6,
10,8,5}}; //
在宣告二維陣列時,可以同時設定初值
(3) int a[3][4]={0}; //
這是特別的初值設定法,會把二維陣列中每個元素都設為0
(4) chara[3][5]={{'B','o','o','k','\0'},{'D','o',
'g','\0','\0'},{'F','i','s','h','\0'}}; //
這是字元型態的二維陣列宣告與
初值設定,請注意字元
'\0'
(5) chara[3][5]={"Book","Dog","Fish"};
//這個陣列宣告方式基本上與上例(4)相同,其概念是用「字串」去包
含「字元」,寫法要簡潔的多。
但使用時要記得每個字串後面都有
一個隱藏的結束字元'\0'
◎二維字元陣列與字串陣列的應用方法:
一般在字串資料的應用上,常常會使用到字串陣列,例如要將星期日至星期六的英文單字建立成陣列,則我們常會使用下列的宣告方式:
char
week[7][10]={"SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY",
"SATURDAY"};
這種宣告就是所謂的字串陣列,而結構上是屬於二維字元陣列,其實際的資料內容可以用下面表格來表示:
0
1
2
3
4
5
6
7
8
9
0
S
U
N
D
A
Y
\0
?
?
?
1
M
O
N
D
A
Y
\0
?
?
?
2
T
U
E
S
D
A
Y
\0
?
?
3
W
E
D
N
E
S
D
A
Y
\0
4
T
H
U
R
S
D
A
Y
\0
?
5
F
R
I
D
A
Y
\0
?
?
?
6
S
A
T
U
R
D
A
Y
\0
?
當我們作了這樣的宣告之後,後續的應用就有一些值得注意的地方:
(1)
week[x][y]這樣的寫法代表「字元」。
例如
putchar(week[0][1])會印出字元'U',putchar(week[2][3])會印出
字元'S',week[3][0]='P'會把該位置的內容從'W'改成'P'。
(2)
week[x]這樣的寫法代表「字串」。
例如
puts(week[0])會印出字串"SUNDAY",puts(week[1])會印出字串
"MONDAY"。
其實講的更專業一點,week[x]所表示的是week[x][0]這個字元的記憶體位址,這在以後
講到『指標』這個單元時,還會再詳細說明。
延伸文章資訊
- 1第5章、陣列和指標 - C/C++
如果陣列的資料型別是char,字元陣列的初值化應該如下: ... 如果在陣列初始化宣告時並沒有指定陣列的大小,C/C++在編譯時將會自動配置一個適足以容納所有初始化資料的 ...
- 2C/C++程式設計筆記:C語言字元陣列初始化,有些賦值方式千 ...
規律:用某個值給陣列賦值,沒有被賦值的元素會自動呼叫預設的建構函式,如char預設為\0,int預設為0.等等. 在c語言中,將字串作為字元陣列來處理。(c 中 ...
- 3陣列與字串
陣列宣告時具有⼀一個特殊的初始化語法: ... 在有初始化的時候,陣列的⻑⾧長度可以省略不寫,此時陣 ... C 字串是⼀一種⽤用'\0' 表⽰示結尾的字元(char) 陣列.
- 4初始化字串
char code[ ] = "abc";. 將 code 初始化為四元素的字元陣列。 第四個元素為Null 字元,用於終止所有字串常值。 識別項清單只能包含將初始化的識別項 ...
- 5字元陣列初始化和0 - w3c學習教程
字元陣列初始化和0,字元陣列可以在定義時進行初始化有兩種初始化方法方法1 逐個字元賦給陣列中各元素這種方法最容易理解例如char c 5 把5個字元分.