一、高維數(shù)組
有時(shí),數(shù)組的維數(shù)并不止一維,例如一個(gè)記錄消費(fèi)中心在第一季度里各個(gè)月的收入數(shù)據(jù)就可以用二維數(shù)組來表示。定義二維數(shù)組的方法是在一維數(shù)組定義的后面再加上一個(gè)用方括號(hào)括起來的維數(shù)說明。例如:
float array[3][8];
實(shí)際上,這個(gè)數(shù)組可以看成3個(gè)連續(xù)的一維數(shù)組,每個(gè)一維數(shù)組具有8個(gè)元素。該數(shù)組在內(nèi)存中的存儲(chǔ)格式為最左邊的維數(shù)相同的元素連續(xù)存儲(chǔ),也即按行存儲(chǔ)的。首先存儲(chǔ)第一行8個(gè)元素,其次是第二行,最后是第三行。
main()
{
int array[3][3]={1,2,3,4,5,6,7,8,9};
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf(%3d);
printf(\n);
}
}
它的輸出結(jié)果為:
1 2 3
4 5 6
7 8 9
可以看出,二維數(shù)組元素是按行存儲(chǔ)的。
我們也可以對(duì)數(shù)組進(jìn)行賦值,而不是初始化。
main()
{
int array[3][3];
int i,j;
for(j=0;j<3;j++)
for(i=0;i<3;i++) scanf(%d,&array[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf(%3d);
printf(\n);
}
}
當(dāng)輸入1 2 3 4 5 6 7 8 9<回車>
輸出為:
1 4 7
2 5 8
3 6 9
數(shù)組可以是二維、三維甚至是更高維數(shù)的,雖然C語言對(duì)維數(shù)的處理沒有上限,但是處理高維數(shù)組是很頭疼的事。一般盡量避免處理四維和四維以上的數(shù)組。下面看一個(gè)三維數(shù)組的例子:
main()
{
int array[2][3][4];
int i,j,k;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
for(k=0;k<4;k++) array[i][j][k]=i*12+j*4+k;
}
這個(gè)三維數(shù)組可以看成2個(gè)二維數(shù)組,每個(gè)二維數(shù)組又可以看成3個(gè)一維數(shù)組?梢栽陬^腦里想象成兩個(gè)平行平面,每個(gè)平面內(nèi)有3*4個(gè)點(diǎn)。所以共有24個(gè)元素。
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試二級(jí)C語言教程匯總計(jì)算機(jī)等級(jí)考試二級(jí)C語言常見知識(shí)點(diǎn)總結(jié)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |