1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
ak47
程序員考試補課筆記-第九天
現(xiàn)在我們就從相對于二維數(shù)組來說比較簡單的一維數(shù)組開始吧,先看看如何定義一個指向一維數(shù)組的指針吧。
int a[5]={1,2,3,4,5};
int *p;
p=a; /*這里a因為是數(shù)組的變量名,它的值是這個數(shù)組的首地址*/
跟著我們可以通過指針來改變數(shù)組的值
p++;
*p=6; /*那么數(shù)組的第二個元素就等于6了*/
這里的意思就是讓指針向下移一個,這樣一來指向了數(shù)組的第二個元素。我們再細一點看看它的地址,通過這個指針,即當前指向的元素的地址。那么地址又是怎么運行的呢?p++這個命令就是讓地址往下移的了,如果按照數(shù)組a 的類型來看,數(shù)組a是一個整數(shù)的類型,占的空間是兩字節(jié),而p++就只加1,頂多都是到第一個元素的后一半里,哪里可以指到第二個元素呢?其實這里就關(guān)系到定義指針時的類型,我們這里定義的也是整型類型,"對啊,這里定義整型是對的啊,因為它要指向整形數(shù)據(jù)嘛,那么當然就是一定要定義這種類型啦",其實這并不是真正的答案,而且也不必一定要定義為跟指向的數(shù)據(jù)一樣類型,我們完全可以定義指針的類型為其它的。就比如定義為float吧,不過這里執(zhí)行p++就直接跳過了一個數(shù)組元素,那么現(xiàn)在我們來看看究竟是怎么一回事。其實我們定義的指針類型就是用來結(jié)合指針,進行一定規(guī)則的運算方式。這里很明顯可以看出如果是定義int 類型的就可以到第二個元素,說明了p++不是簡單的地址加一,而是先結(jié)合這個是什么類型才進行運算的,加一次就等于地址移了2位了。float道理一樣移4位,所以得到的結(jié)合是移到第三個元素。
再往下看看:
a=a+1;
這里我們進行地址移位賦值,不過這條命令是錯誤的,C語言里數(shù)組名是一個地址常量,所以不以試圖改變它的值。
接下來簡單地說一說二維數(shù)組,因為我們今天的任務(wù)就是首先搞清一維數(shù)組先�,F(xiàn)在我們先來定義一個二維數(shù)組
int a[2][4];
這里我不再重復(fù)書里講的東西,我講一下老師給我們的那種思想。我們這樣來看一個二維數(shù)組,就是一維數(shù)組的元素又為是一維數(shù)組,這樣嵌套。當然其它的多維數(shù)維都是這樣一直嵌套下去的了。我們先看看這個圖如圖第九天圖一這樣就很容易說明了為什么a[0] 和 &a[0]為什么是一樣都是代表著地址,其實都只是首地址,這里從文字很難可以說通,但是從意義上就可以理解。我們把二維數(shù)組的整列都充當為一個一維數(shù)組,不把它看作二維,這樣得出如下:
a[1][1];
充當一維 M為名
M[1]; /*調(diào)用第二個元素*/
我們試著把所有都這樣看作,定義這樣的一個一維數(shù)組
int a0[4],a1[4],a2[4];
這樣一來,我們就知道a0、a1、a2都是首地址了。
好了,可能也越說越模糊了,如果看不明白還是按照自己原來的思想去考慮數(shù)組吧,這是因為每個人都有自己的的想法和理解。
- 推薦給朋友
- 收藏此頁
·程序員考試補課筆記-第八天 (2004-12-27 13:29:00)
·程序員考試補課筆記-第七天 (2004-12-27 13:28:00)
·程序員考試補課筆記-第六天 (2004-12-27 13:27:00)
·程序員考試補課筆記-第四天 (2004-12-27 13:26:00)
·程序員考試補課筆記-第三天 (2004-12-26 13:21:00)
·程序員考試補課筆記-第二天 (2004-12-26 13:20:00)
·程序員考試補課筆記-第七天 (2004-12-27 13:28:00)
·程序員考試補課筆記-第六天 (2004-12-27 13:27:00)
·程序員考試補課筆記-第四天 (2004-12-27 13:26:00)
·程序員考試補課筆記-第三天 (2004-12-26 13:21:00)
·程序員考試補課筆記-第二天 (2004-12-26 13:20:00)
版權(quán)聲明 -------------------------------------------------------------------------------------
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系
,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系
