|
數(shù)組和鏈表一樣是一種線性結(jié)構(gòu),數(shù)組在內(nèi)存(棧,stack)中用來連續(xù)存儲同一類型的數(shù)據(jù)。對數(shù)組的操作在java中有個很強(qiáng)大的類庫(API)。與數(shù)組最為密切的概念就是指針了,與數(shù)組的有關(guān)算法基本上與指針有關(guān)。二維數(shù)組在《數(shù)據(jù)結(jié)構(gòu)》中可以用來模擬現(xiàn)實世界的“圖表”(數(shù)據(jù)結(jié)構(gòu)),在UCOS-II操作系統(tǒng)中,二維數(shù)組有經(jīng)典的應(yīng)用(任務(wù)優(yōu)先級表)。這里通過一個二維數(shù)組的例子,講述一下有關(guān)二維數(shù)組的理解和操作。下例可以直接復(fù)制到Microsoft Visual Studio編譯運(yùn)行。這個例程是自己學(xué)習(xí)完java數(shù)組部分內(nèi)容時自己編寫的,并有注解。
#include<stdio.h>
int main(void)//比較,輸出最大值
{
int i, j; //
//定義一個二維數(shù)組:3行3列;在c語言中二維數(shù)組方括號內(nèi)必須初始化數(shù)組長度,否則編譯出錯!
//在java中方括號內(nèi)可以不必聲明,還可以寫成:int arr[][]={{1,5} ,{4,2,3},{6,8 ,7}};注意,第一個元素少了一個!
//在c語言中不能寫成:int arr[][]={{0,1,5} ,{4,2,3},{6,8 ,7}};
// int arr[3][3]={{0,1,5} ,{4,2,3},{6,8 ,7}};
int arr[3][3]={ {10,1,5},//定義一個二維數(shù)組,該數(shù)組共有3個元素,每個元素也包含3個元素
{4,2,3},
{6,8,7}
};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
arr[ i][2]=0;//將二維數(shù)組中所有元素的第2列內(nèi)容全部賦值0;即每個元素中的的第2個元素全部賦值0;
// arr[0][j]=0;//將二維數(shù)組中的第0個元素內(nèi)容全部賦值0;
printf("%d\n\r" ,arr[ i][j]);
}
}
// printf("\n\n" );
return 0; //結(jié)束主函數(shù)
}
/* 二維數(shù)組也可以理解為一維數(shù)組中的數(shù)組,即二維數(shù)組中的每一個元素也是由同類型數(shù)據(jù)數(shù)組組成的;
所以二維數(shù)組也是按順序排列的,只是構(gòu)造方法有些改變。
如:
int arr[][]={{0,1,5} ,{4,2,3},{6,8 ,7}};該二維數(shù)組共占9*4==36個字節(jié)空間,二維數(shù)組中的第一個方括號表示
該二維數(shù)組的第幾個元素或元素數(shù),第二個方括號表示該二維數(shù)組的第幾個元素中的第幾個元素,這就是所謂的
二維數(shù)組是“一維數(shù)組中的數(shù)組”;二維數(shù)組 a[][]中的“{0,1,5}”花括號部分就表示該數(shù)組的第0個元素�;ɡㄌ杻�(nèi)部
內(nèi)容就表示第0個元素一共有3個元素,二維數(shù)組也可以轉(zhuǎn)換成一維數(shù)組,二維數(shù)組的優(yōu)點是可以很方便的模擬和描述一個平面;
arr[1][2]就表示二維數(shù)組arr[][]中的第二個元素中的第三個元素,
即相當(dāng)于:int arr[0]={0,1,5}, arr[1]={4,2,3},arr[2]={6,8 ,7};//定義3個一維數(shù)組
可見,將幾個獨立定義的一維數(shù)組可以組合成二維數(shù)組。
如, arr[ i][j]就表示二維數(shù)組arr[][]中的第i個元素中的一維數(shù)組的第j元素,描述平面時i表示“行”,j表示“列”
int arr[][]={ {0,1,5},
{4,2,3},
{6,8,7}
};
*/
學(xué)好計算機(jī)語言的“易筋經(jīng)”是什么?山人認(rèn)為就是一句話:內(nèi)存管理,即數(shù)據(jù)是如何在內(nèi)存中存儲的。
--------山人 2015年9月3日19:40:09
|
|