- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2-1-4 二维阵列的存取与走访
第2章 陣列與結構(Arrays and Structures) 2-1 C語言的陣列 2-2 陣列表示法 2-3 C語言的結構 2-4 陣列的應用 - 稀疏矩陣表示法 2-1 C語言的陣列 2-1-1 一維陣列 2-1-2 一維陣列的存取與走訪 2-1-3 二維陣列 2-1-4 二維陣列的存取與走訪 2-1 C語言的陣列 陣列是C語言延伸資料型態提供的資料結構,屬於一種循序性的資料結構。日常生活最常見的範例是一排信箱,郵差依信箱號碼投遞郵件,住戶依信箱號碼取出郵件,信箱儲存的信件就是儲存在陣列的元素值,信箱號碼是陣列索引值(Index),我們可以隨機存取每一個元素,這是陣列的特性。 2-1-1 一維陣列-宣告 「一維陣列」(One-dimensional Array)如同前述單排信箱的資料結構,只是將相同資料型態的變數集合起來,然後使用一個變數名稱來代表,以索引值存取指定陣列元素的值。 在C語言陣列變數的宣告語法,如下所示: 資料型態 變數名稱[長度]; 上述陣列宣告的資料型態可以是基本資料型態:整數、浮點數和字元,也可以是延伸資料型態的結構。 2-1-1 一維陣列-範例 例如:宣告整數int的一維陣列scores[],如下所示: int scores[5]; 上述程式碼宣告大小為5的一維陣列,資料型態是int整數,陣列名稱是scores,C語言的陣列索引值是從0開始。 2-1-1 一維陣列-記憶體圖例 陣列scores[]的記憶體圖例,m表示陣列第1個元素的記憶體位址scores[0],這是一塊連續的記憶體空間,如下圖所示: 2-1-2 一維陣列的存取與走訪-存取 一維陣列可以隨機存取元素值,只需花費固定時間就可以存取指定索引的元素值。例如:大小10的整數陣列scores[]儲存學生的成績資料,陣列索引值是學生學號,我們可以很容易查詢學生成績或更改學生的成績資料,如下圖所示: 2-1-2 一維陣列的存取與走訪-走訪 陣列走訪(traverse)是以循序方式移動陣列索引值,然後處理每一個元素,也就是以地毯方式依序存取陣列全部的元素,在C語言通常是使用迴圈來走訪陣列,如下所示: for ( i = 0; i 10; i++ ) printf(%d:%d , i, scores[i]); 上述for迴圈可以走訪整個scores[]陣列的元素。 2-1-3 二維陣列-說明 「二維陣列」(Two-dimensional Array)屬於一維陣列的擴充,如果將一維陣列視為一度空間,二維陣列就是一個二度空間的平面。 在日常生活的二維陣列非常常見,只要屬於平面的表格,大都可以轉換成二維陣列來儲存資料。 2-1-3 二維陣列-圖例1 2-1-3 二維陣列-圖例2 2-1-3 二維陣列-宣告 宣告一個整數int的二維陣列courses[][]儲存功課表,其大小是6 X 5,6列和5欄(或稱行)如下所示: int courses[6][5]; 上述二維陣列的元素值是整數的課程代碼,如果這節沒課,其值為0。 2-1-3 二維陣列-記憶體圖例 2-1-3 二維陣列-索引 二維陣列各元素的陣列索引值,如下圖所示: 2-1-4 二維陣列的存取與走訪 二維陣列如同一維陣列一般,只需知道存取元素的欄(或稱行)與列值,就可以在固定時間存取其元素值。同樣的,二維陣列的走訪也一樣可以使用二層巢狀迴圈來完成,如下所示: for ( i = 0; i 6; i++ ) for ( j = 0; j 5; j++ ) if ( courses[i][j] != 0 ) sum++; 上述程式碼使用二層for迴圈來走訪二維陣列courses[ ][ ]。 2-2 陣列表示法 2-2-1 以列為主的表示方法 2-2-2 以欄為主的表示方法 2-2-3 指標陣列表示法 2-2 陣列表示法-種類 陣列表示法是電腦內部記憶體儲存陣列元素的方式,一維陣列是一塊連續的記憶體空間,二維以上的陣列因為擁有多列和多欄,所以這塊記憶體的儲存方式就有不同的順序,稱為陣列表示法,常見的方法有三種,如下所示: 以列為主的表示方法。 以欄為主的表示方法。 指標陣列表示法。 2-2 陣列表示法-範例 二維陣列的圖例,如下圖所示: 2-2-1 以列為主的表示方法-說明 二維陣列一共有6 X 5 = 30個元素,可以宣告一個大小為30的一維陣列來儲存二維陣列的所有元素,如下所示: int classes[30]; 二維陣列的索引値如何對應到一維陣列的索引値? 例如: 二維陣列a的大小是rows X columns,二維陣列的元素 a(row_num,column_num)使用以列為主的一維陣列表示法,其索引值公式如下所示: row_num *
您可能关注的文档
- 13 基于区域属性的双边滤波.DOC
- 141 原子的能级142 晶体中电子的状态和能带143 晶体中的电子14 .PPT
- 13 数控车床的加工特点.DOC
- 14 放大电路模型.PPT
- 1422 渲染器面板.PPT
- 1433 IEEE1451智能传感器接口标准.PPT
- 14浅谈GSM-R系统无线网络的优化.PDF
- 14数字技术基础.PPT
- 131救生艇筏和救助艇的配备.PPT
- 15 单片机的主要厂商及产品系列.PPT
- 2024-2025学年福建师大附中九年级(上)期中数学试卷.docx
- 福建省龙岩第一中学锦山学校2023-2024学年九年级上学期第二次月考数学试题.docx
- 重庆市沙坪坝区南开中学校2023-2024学年九年级上学期12月月考数学试题(1).docx
- 江苏省连云港市海州区新海初级中学2023-2024学年九年级上学期第二次月考数学试题.docx
- 浙江省初中名校发展共同体2023-2024学年九年级上学期12月月考数学试题.docx
- 吉林省名校调研卷系列(省命题A)2023—2024学年七年级上学期第三次月考数学试题.docx
- 河南省新乡市牧野区河南师范大学附属中学2023-2024学年九年级上学期12月月考数学试题.docx
- 四川省成都市武侯区成都西川中学2023-2024学年七年级上学期12月月考数学试题.docx
- 【政治】2021—2024年新高考政治真题考点分布汇总.docx
- (3)阅读理解-疾病与医疗——2024年高考英语真题模拟试题专项汇编.docx
文档评论(0)