《C语言程式设计-阵列.ppt》由会员分享,可在线阅读,更多相关《C语言程式设计-阵列.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、莊臺寶編92/09版C語言程式設計-陣列本章學習重點8-1陣列的基本架構8-2一維陣列表示法8-3多維陣列表示法8-4以陣列為參數之函數呼叫8-5字元陣列表示法8-1陣列的基本架構n陣列陣列(array):由一組相同的資料型態所組成由一組相同的資料型態所組成n記憶體位置具有連續性的特性n使用共同的名稱來存取n依據結構,可將陣列分為:依據結構,可將陣列分為:n一維陣列n二維陣列n多維陣列8-2一維陣列表示法n語法n資料型態陣列名稱陣列大小;n說明n資料型態:陣列元素的資料型態n陣列名稱:根據識別字規定命名 n:一個無正負符號的整數n範例ninta5;nintb5=2,4,3,2,7;nintc=
2、1,2,3,4,5;8-2-2一維陣列元素的引用n語法n陣列名稱索引值n說明n陣列名稱:陣列起始位置的位址n索引值:陣列起始位置的位移n範例:inta5;/*假設a陣列的起始位址為100*/索引位址a0a1a2a3a4記憶體位址100102104106108範例Ch8_2(1/2)ch8_2 列出陣列的儲存方式列出陣列的儲存方式 1#include2voidmain()34inta5=2,4,3,6,8,i;5for(i=0;i5;i+)6printf(“索引位址:a%d,陣列的內容:%d,實際記憶體位址:%dn,i,ai,&ai);/*&ai為求出實際位址的表示方式*/7Ch8_2輸出結果(
3、2/2)n程式執行結果索引位址:a0,陣列的內容:2,實際記憶體位址:8724索引位址:a1,陣列的內容:4,實際記憶體位址:8726索引位址:a2,陣列的內容:3,實際記憶體位址:8728索引位址:a3,陣列的內容:6,實際記憶體位址:8730索引位址:a4,陣列的內容:8,實際記憶體位址:87328-2-3陣列界限檢查n C語言不會自動檢查界限語言不會自動檢查界限n若迴路的範圍超過其陣列的範圍,會造成不可預期的錯誤、當機等可能。n若範圍設定太小,則會發生資料遺失的問題。8-3多維陣列表示法 n二維陣列二維陣列n最常用的多維陣列n擁有行、列的資料n記憶體中的儲存方式以線性的方式來儲存n語法語
4、法n資料型態陣列名稱陣列大小陣列大小;8-3多維陣列範列:inta33;第一列a00a01a02第二列a10a11a12第三列a20a21a22Column(1)Column(2)Column(3)Row(1)a00a01a02Row(2)a10a11a12Row(3)a20a21a22實際記憶體中的儲存方式範例Ch8_5(1/3)ch8_5 基本二維陣列的加法運算基本二維陣列的加法運算1#include2voidmain()34inta34=1,2,3,4,5,6,7,8,9,10,11,12;5intb34,c34,i,j;6printf(Theorigionalmatrixis:n);7
5、for(i=0;i3;i+)89for(j=0;j4;j+)10printf(%3d,aij);11printf(n);1213printf(PleaseInputthesecond3*4matrix.n);範例Ch8_5(2/3)14for(i=0;i3;i+)15 for(j=0;j4;j+)16 scanf(%d,&bij);17 for(i=0;i3;i+)18 for(j=0;j4;j+)19 cij=aij+bij;20printf(Afteraddition:n);21 for(i=0;i3;i+)22 23for(j=0;j4;j+)24printf(%3d,cij);25pr
6、intf(n);26 27Ch8_5輸出結果(3/3)n程式執行結果Theoriginalmatrixis:123456789101112PleaseInputthesecond3*4matrix.123456789123Afteraddition:246810121416181113158-4以陣列為參數之函數呼叫n語法intfunction(intarray);/*副程式宣告*/voidmain(void)/*主程式*/inta;function(a);intfunction(intarray)/*副程式開始*/範例Ch8_8(1/2)ch8_8 以陣列做為參數,輸出陣列的內容及位址以陣列
7、做為參數,輸出陣列的內容及位址1#include2voidprint(intarray);3voidmain()45inta8=1,2,3,4,5,6,7,8;6print(a);/*呼叫副程式print()且將a陣列傳入*/78voidprint(intarray)910inti;11for(i=0;i8;i+)12printf(array%d=%d,陣列位址:%dn,i,arrayi,&arrayi);13ch8_8輸出結果(2/2)n程式執行結果array0=1,陣列位址:8700array1=2,陣列位址:8702array2=3,陣列位址:8704array3=4,陣列位址:8706array4=5,陣列位址:8708array5=6,陣列位址:8710array6=7,陣列位址:8712array7=8,陣列位址:87148-5字元陣列表示法 n字元陣列n所有的資料型態都是以char(字元)組成n範例nchar a =s,t,r,i,n,g;