找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5243|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

二維數(shù)組的理解和操作

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:91350 發(fā)表于 2015-10-1 13:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
         數(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


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:643751 發(fā)表于 2020-2-18 21:56 | 只看該作者
貌似代碼可以再優(yōu)化一下 arr[i][2] = 0; 這個代碼貌似賦值了9次
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表