C語言數(shù)組與指針(二).pdf

C語言數(shù)組與指針(二).pdf

ID:48058204

大?。?26.57 KB

頁數(shù):4頁

時(shí)間:2019-10-16

C語言數(shù)組與指針(二).pdf_第1頁
C語言數(shù)組與指針(二).pdf_第2頁
C語言數(shù)組與指針(二).pdf_第3頁
C語言數(shù)組與指針(二).pdf_第4頁
資源描述:

《C語言數(shù)組與指針(二).pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、C語?數(shù)組與指針(?)數(shù)組與指針的糾葛在C語?中,根據(jù)定義,表達(dá)式e1[e2]準(zhǔn)確地對(duì)應(yīng)于表達(dá)式*((e1)+(e2))。因此,要求表達(dá)式e1[e2]的其中?個(gè)操作數(shù)是指針,另?個(gè)操作數(shù)是整數(shù)。且這兩個(gè)操作數(shù)的順序可以顛倒。故:a[4]等同于4[a]等同于*(a+4)*編譯器把所有的e1[e2]表達(dá)式轉(zhuǎn)換成((e1)+(e2))。所以,以下標(biāo)的形式訪問在本質(zhì)上與以指針的形式訪問沒有區(qū)別,只是寫法上不同罷了!多維數(shù)組?維數(shù)組a[i][j]編譯器總是將?維數(shù)組看成是?個(gè)?維數(shù)組,??維數(shù)組的每個(gè)元素又都是?個(gè)數(shù)組。多維數(shù)組定義的下標(biāo)從前到后可以看做是最宏觀的維到最微觀的維。例:

2、三維數(shù)組a[i][j][k]可理解為共有i個(gè)?組,每個(gè)?組?有j個(gè)?組,每個(gè)?組?有k個(gè)元素。所以:a表?為整個(gè)三維數(shù)組,其值為&a[0][0][0]&a+1為整個(gè)三維數(shù)組后?的第?個(gè)位置。(偏移整個(gè)三維數(shù)組的長度)a+1為第?個(gè)?組的?位置處(偏移?個(gè)?組的長度)【數(shù)組名a代表的是數(shù)組?元素的?地址,即:第?個(gè)?組的?地址】a[0]表?為三維數(shù)組的i個(gè)?組中的第?個(gè)?組【可看做?個(gè)?維數(shù)組】,其值與&a[0][0][0]的值相同。&a[0]+1為第?個(gè)?組的?位置處(偏移?個(gè)?組的長度)a[0]+1為第?個(gè)?組中第?個(gè)?組的?位置處(a[0]可看做是?個(gè)?維數(shù)組名,故其代表

3、的是第?個(gè)?組的?地址)(偏移?個(gè)?組的長度)a[0][0]表?為第?個(gè)?組中的第?個(gè)?組【可看做?個(gè)?維數(shù)組】,其值與&a[0][0][0]的值相同。&a[0][0]+1為第?個(gè)?組中第?個(gè)?組的?位置處(偏移?個(gè)?組的長度)a[0][0]+1為第?個(gè)?組中第?個(gè)?組的第?個(gè)元素位置處(偏移?個(gè)元素的長度)a[0][0][0]表?為第?個(gè)?組中的第?個(gè)?組中的第?個(gè)元素。其值為&a[0][0][0],a[0][0][0]+1為?元素值加1。(因?yàn)閍[0][0][0]為元素值?不是地址)數(shù)組的數(shù)組名(即:?維數(shù)組名)退化為數(shù)組的(常量)指針,?不是指針的指針。同理,n維數(shù)組名

4、退化為n-1維數(shù)組的(常量)指針?!究偨Y(jié):指針代表的是誰的?地址就以誰的?度為偏移單位?!俊疽?guī)律:與定義?較,缺少?對(duì)?括號(hào),就是?維數(shù)組的數(shù)組名,如上例:a缺少3對(duì)?括號(hào),即為3維數(shù)組的數(shù)組名(代表的是2維數(shù)組的地址);a[0]缺少2對(duì)?括號(hào),即為2維數(shù)組的數(shù)組名(代表的是1維數(shù)組的地址);a[0][0]缺少1對(duì)?括號(hào),即為1維數(shù)組的數(shù)組名(代表的是數(shù)組元素的地址)】【數(shù)組名與整數(shù)相加,?先要轉(zhuǎn)換成數(shù)組的?元素地址與整數(shù)相加,??元素的存儲(chǔ)??就是相加的單位】對(duì)多維數(shù)組的解析我們可以?上?那種從前到后的解析?式來思考,a:就表?整個(gè)多維數(shù)組。a[m]:就表?第m+1?組(?

5、組即數(shù)組最?的維),a[m][n]:就表?第m+1?組中的第n+1?組。(?組即次?的維),以此類推,即多維數(shù)組的解析是層層細(xì)化的。指針數(shù)組與數(shù)組指針指針數(shù)組:?先它是?個(gè)數(shù)組。數(shù)組的元素都是指針。它是“存儲(chǔ)指針的數(shù)組”的簡稱。數(shù)組指針:?先它是?個(gè)指針。它指向?個(gè)數(shù)組。它是“指向數(shù)組的指針”的簡稱。例:intp1[10];//它是指針數(shù)組。(因?yàn)閇]的優(yōu)先級(jí)?*?,p1先與[]結(jié)合,構(gòu)成?個(gè)數(shù)組的定義)int(*p2)[10];//它是數(shù)組指針。(括號(hào)的優(yōu)先級(jí)較?,*與p2構(gòu)成?個(gè)指針的定義)它指向?個(gè)包含10個(gè)int型數(shù)據(jù)的數(shù)組。int(p)[10][5];//則p指向

6、?個(gè)int型的?維數(shù)組a[10][5]?!疽?guī)律:數(shù)組指針,把定義中括號(hào)內(nèi)的指針看成是?個(gè)普通的字母,則其表?的就是數(shù)組指針?biāo)傅膶?duì)象類型】inta[5][5];int(*p)[4];p=a;問:&p[4][2]-&a[4][2]的值為多少?設(shè)?維數(shù)組的?地址為0,則a[4][2]為第5組的第3個(gè)位置,因?yàn)閕nta[5][5];即有5組,每組有5個(gè)元素。故:&a[4][2]是(4*5+2)*sizeof(int)。int(*p)[4];指針指向?個(gè)含4個(gè)int型的元素的數(shù)組,故p[4]相對(duì)于p[0]向后移動(dòng)了“4個(gè)int型數(shù)組”的長度,然后在此基礎(chǔ)上再向后移動(dòng)2個(gè)int型的長度

7、(即,其步長按維度逐步遞減,多維數(shù)組也可按此?式理解)。最后其值為(4*4+2)sizeof(int)最后切記:地址值參與的加減運(yùn)算(地址不能被乘),整數(shù)的單位是地址值代表的元素的存儲(chǔ)??!&p[4][2]-&a[4][2]結(jié)果為-4。若分開?較&p[4][2]和&a[4][2]則相差4sizeof(int)個(gè)字節(jié)。數(shù)組參數(shù)與指針參數(shù)1、?維數(shù)組名做實(shí)參intmain(void){inta[4][5];………………fun(a);………}被調(diào)函數(shù):①fun(inta[4][5])②fun(inta[][5

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。