C语言第六讲,数组
C語言第六講,數(shù)組
一丶什么是數(shù)組
數(shù)組,就是一整塊的連續(xù)內(nèi)存空間.
且類型都是一樣的.大小一樣
比如:
1.1數(shù)組元素的訪問
我們要訪問數(shù)組,例如上面,我們訪問元算2,元素3等等怎么訪問..
比如有一個(gè)數(shù)組為:
int Arry[3] = {1,2,3}; //數(shù)組定義初始化. Arry[0] = 1; Arry[1] = 2; //數(shù)組的訪問 ......
利用下標(biāo)來進(jìn)行訪問.
利用程序來進(jìn)行訪問
int Ary[10] = { 0 };for (int i = 0; i < 10; i++){printf("%d\r\n",i);}動(dòng)態(tài)的大小識別.
int Ary[10] = { 0 };for (int i = 0; i < sizeof(Ary)/sizeof(Ary[0]); i++){printf("%d\r\n",i);}這里用到了一個(gè)關(guān)鍵字,Sizeof,?sizeof關(guān)鍵字是求大小的關(guān)鍵字.?例如我們求數(shù)組的總大小.?然后?利用總大小?除以數(shù)組元素個(gè)數(shù)的大小.?就得出來了數(shù)組的個(gè)數(shù).
1.2一維數(shù)組的聲明
在C語言中,或者C++語言中,我們要聲明數(shù)組.?不用考慮在哪里開辟,開辟多大的問題,只需要你給我一個(gè)大小.我編譯器自動(dòng)的來進(jìn)行開辟內(nèi)存空間供你使用.
類型 數(shù)組名[數(shù)組元素的個(gè)數(shù)] 例如:int Ary[3]; //定義一個(gè)Ary的數(shù)組,有3個(gè)元素.注意,聲明的時(shí)候是個(gè)數(shù).也就是說數(shù)組有3個(gè)元素.? 但是訪問的時(shí)候是下表.從0開始訪問
例如:
ary[0] = 1; ary[1] = 2; ary[2] = 3;總共有三個(gè).
聲明的時(shí)候則是告訴編譯器,?我聲明的類型是?int類型,數(shù)組名字?jǐn)?shù)Ary,個(gè)數(shù)是3個(gè).?那么這個(gè)數(shù)組所占的內(nèi)存空間則是? 3 * 4 = 12個(gè)字節(jié)大小.
公式計(jì)算:
3(數(shù)組元素個(gè)數(shù)) *?類型? =?內(nèi)存空間所占大小.
1.3數(shù)組應(yīng)該注意的問題.
在C語言中,數(shù)組的聲明不支持動(dòng)態(tài)聲明.
什么意思?
也就是說,你需要給定我個(gè)數(shù).我來進(jìn)行申請.但是你不能把這個(gè)個(gè)數(shù)給一個(gè)變量保存.讓我跟隨變量來申請.
例如:
int nCount = 10; int Ary[nCount]; //錯(cuò)誤的
?
數(shù)組的定義可以和普通成員變量的定義放在一起.
例如:
int A, ary[5],b;
?
二丶數(shù)組初始化
上面我們雖然定義了數(shù)組.但是并沒有仔細(xì)講解數(shù)組的初始化
數(shù)組的初始化常用的有三種.
第一種,?大括號初始化.
int Ary[3] = { 1, 2 ,3}; //數(shù)組中的元素1,元素2,元素三分別初始化為了1,2,3第二種.全部初始化.
int Ary[3] = {0}; //數(shù)組的每個(gè)元素全部初始化為了0第三種,不確定個(gè)數(shù)的初始化.
int Ary[] = { 1, 2, 3} ;//有的時(shí)候你并不知道你的數(shù)組有多大. 但是又不用動(dòng)態(tài)的申請空間. 所以這樣寫會默認(rèn)有3個(gè)元素.?三丶二維數(shù)組和高維數(shù)組
有的時(shí)候一維數(shù)組并不能滿足我們的需求.
這個(gè)是否就需要更高維的數(shù)組了.
例如:
int Ary[2][2]; 定義二維數(shù)組
這樣則聲明了一個(gè)二維數(shù)組.?代表我們申請了 2行 2列的數(shù)組.?大小是 2*2的矩陣.??
這幾個(gè)元素分別是:
Ary[0][0] Ary[0][1] Ary[1][0] Ary[1][1]
二維數(shù)組的定義初始化.
int nNum[2][2] = {{0,1},{2,3}}; 使用兩個(gè)括號即可.二維數(shù)組對部分元素進(jìn)行初始化.
int nNum[2][2] = {{1},{0}};二維數(shù)組的訪問
二維數(shù)組本質(zhì)是一維數(shù)組.但是為了理解.所以說成是二維數(shù)組.
我們利用程序來對其進(jìn)行訪問.
二維數(shù)組初始化int Ary[3][4] = {0};for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){Ary[i][j] = i + j; //重要語句. i是行,j是列}} 二維數(shù)組輸出for (int i = 0; i < 3; i++ ){for (int j = 0; j < 4; j++){printf(" %d", Ary[i][j]);}puts("\r\n");}輸出結(jié)果.
?
高維數(shù)組則一樣,不過一般用不到高維數(shù)組.
?
轉(zhuǎn)載于:https://www.cnblogs.com/iBinary/p/8472606.html
總結(jié)
- 上一篇: P1908 逆序对
- 下一篇: C语言string.h常用函数总结