標(biāo)題: 二維數(shù)組的理解和操作 [打印本頁(yè)]

作者: piaolin    時(shí)間: 2015-10-1 13:23
標(biāo)題: 二維數(shù)組的理解和操作
         數(shù)組和鏈表一樣是一種線性結(jié)構(gòu),數(shù)組在內(nèi)存(棧,stack)中用來(lái)連續(xù)存儲(chǔ)同一類型的數(shù)據(jù)。對(duì)數(shù)組的操作在java中有個(gè)很強(qiáng)大的類庫(kù)(API)。與數(shù)組最為密切的概念就是指針了,與數(shù)組的有關(guān)算法基本上與指針有關(guān)。二維數(shù)組在《數(shù)據(jù)結(jié)構(gòu)》中可以用來(lái)模擬現(xiàn)實(shí)世界的“圖表”(數(shù)據(jù)結(jié)構(gòu)),在UCOS-II操作系統(tǒng)中,二維數(shù)組有經(jīng)典的應(yīng)用(任務(wù)優(yōu)先級(jí)表)。這里通過(guò)一個(gè)二維數(shù)組的例子,講述一下有關(guān)二維數(shù)組的理解和操作。下例可以直接復(fù)制到Microsoft Visual Studio編譯運(yùn)行。這個(gè)例程是自己學(xué)習(xí)完java數(shù)組部分內(nèi)容時(shí)自己編寫的,并有注解。

#include<stdio.h>
int main(void)//比較,輸出最大值
{
   int i, j;  //
//定義一個(gè)二維數(shù)組:3行3列;在c語(yǔ)言中二維數(shù)組方括號(hào)內(nèi)必須初始化數(shù)組長(zhǎng)度,否則編譯出錯(cuò)!
   //在java中方括號(hào)內(nèi)可以不必聲明,還可以寫成:int arr[][]={{1,5} ,{4,2,3},{6,8 ,7}};注意,第一個(gè)元素少了一個(gè)!
   //在c語(yǔ)言中不能寫成: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},//定義一個(gè)二維數(shù)組,該數(shù)組共有3個(gè)元素,每個(gè)元素也包含3個(gè)元素
                {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;即每個(gè)元素中的的第2個(gè)元素全部賦值0;
   // arr[0][j]=0;//將二維數(shù)組中的第0個(gè)元素內(nèi)容全部賦值0;
   printf("%d\n\r" ,arr[ i][j]);
  }
   }
   // printf("\n\n" );

return 0; //結(jié)束主函數(shù)
}
/* 二維數(shù)組也可以理解為一維數(shù)組中的數(shù)組,即二維數(shù)組中的每一個(gè)元素也是由同類型數(shù)據(jù)數(shù)組組成的;
   所以二維數(shù)組也是按順序排列的,只是構(gòu)造方法有些改變。
   如:
   int arr[][]={{0,1,5} ,{4,2,3},{6,8 ,7}};該二維數(shù)組共占9*4==36個(gè)字節(jié)空間,二維數(shù)組中的第一個(gè)方括號(hào)表示
   該二維數(shù)組的第幾個(gè)元素或元素?cái)?shù),第二個(gè)方括號(hào)表示該二維數(shù)組的第幾個(gè)元素中的第幾個(gè)元素,這就是所謂的
   二維數(shù)組是“一維數(shù)組中的數(shù)組”;二維數(shù)組 a[][]中的“{0,1,5}”花括號(hào)部分就表示該數(shù)組的第0個(gè)元素;ɡㄌ(hào)內(nèi)部
   內(nèi)容就表示第0個(gè)元素一共有3個(gè)元素,二維數(shù)組也可以轉(zhuǎn)換成一維數(shù)組,二維數(shù)組的優(yōu)點(diǎn)是可以很方便的模擬和描述一個(gè)平面;
   arr[1][2]就表示二維數(shù)組arr[][]中的第二個(gè)元素中的第三個(gè)元素,
   即相當(dāng)于:int arr[0]={0,1,5},  arr[1]={4,2,3},arr[2]={6,8 ,7};//定義3個(gè)一維數(shù)組
   可見(jiàn),將幾個(gè)獨(dú)立定義的一維數(shù)組可以組合成二維數(shù)組。
   如, arr[ i][j]就表示二維數(shù)組arr[][]中的第i個(gè)元素中的一維數(shù)組的第j元素,描述平面時(shí)i表示“行”,j表示“列”
     int arr[][]={ {0,1,5},
                {4,2,3},
                {6,8,7}
              };
   
   
  */

      學(xué)好計(jì)算機(jī)語(yǔ)言的“易筋經(jīng)”是什么?山人認(rèn)為就是一句話:內(nèi)存管理,即數(shù)據(jù)是如何在內(nèi)存中存儲(chǔ)的。

        --------山人  2015年9月3日19:40:09



作者: QQ572008555    時(shí)間: 2020-2-18 21:56
貌似代碼可以再優(yōu)化一下 arr[i][2] = 0; 這個(gè)代碼貌似賦值了9次




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1