[程式設計筆記]第五章 陣列
阿新 • • 發佈:2019-01-03
1 1. 為什麼需要陣列? 2 為了解決大量同類型資料的儲存和使用問題 3 為了模擬現實世界 4 2. 陣列的分類 5 一維陣列: 6 怎樣定義一維陣列 7 格式: 資料型別 陣列名[元素個數] ; 8 為n個變數連續分配儲存空間 9 所有的變數資料型別必須相同 10 所有變數所佔的位元組大小必須相等 11 //例子 12 int a[5] ; 13 一維陣列名不代表陣列中的所有元素 14 一維陣列名代表陣列第一個元素的地址15 有關一維陣列的操作 16 初始化 17 1. 完全初始化 18 int a[5] = {1,2,3,4,5} ; 19 2. 不完全初始化 //未被初始化的元素自動為零 20 int a[5] = {1,2,3} ; 21 3.不初始化 //所有元素都是垃圾值 22 int a[5] ; 23 4.清零 24 inta[5] = {0} ; 25 賦值 26 排序 27 求最大/最小值 28 倒置 29 查詢 30 插入 31 刪除 32 33 二維陣列 34 格式:資料型別 陣列名[行數][列數] ; 35 int a[3][4] ; 36 //總共是12個元素可以當做是3行4列看待,依次為: 37 a[0][0] a[0][1] a[0][2] a[0][3] 38 a[1][0] a[1][1] a[1][2] a[1][3] 39 a[2][0] a[2][1] a[2][2] a[2][3] 40 int a[m][n] ;//該二維陣列右下角位置座標元素只能是a[m-1][n-1] 41 42 初始化: 43 int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12} ; 44 int a[3][4] = 45 { 46 {1,2,3,4} , 47 {5,6,7,8} , 48 {9,10,11,12} , 49 } ; 50 51 操作: 52 輸出二維陣列的內容 53 int a[3][4] 54 { 55 {1,2,3,4} , 56 {5,6,7,8} , 57 {9,10,11,12} , 58 } ; 59 60 int i,j ; 61 //輸出陣列內容 62 for (i=0; i<3; ++i) 63 { 64 for (j=0; j<4; ++j) 65 printf("%d",a[i][j]) ; 66 printf("\n") ; 67 } 68 對二維陣列進行排序 69 求每一行的最大值 70 判斷矩陣是否對稱 71 矩陣的相乘 72 73 74 多維陣列 75 是否存在多維陣列 76 答:不存在,因為記憶體是線性一維的 77 n維陣列可以當做每個元素是n-1維陣列的一維陣列。 78 例如: 79 int a[3][4] ; 80 //該陣列是含有3個元素的一維陣列 81 只不過每個元素都可以再分成4個小元素 82 int a[3][4][5] ; 83 //該陣列是含有3個元素的一維陣列 84 只不過每個元素都是4行5列的二位陣列 85 86