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