查看全部128種考試
軟件水平考試
 考試動(dòng)態(tài) 報(bào)考指南 歷年真題 模擬試題 復(fù)習(xí)資料 心得技巧 專(zhuān)業(yè)英語(yǔ) 技術(shù)文章 軟考論壇 考試用書(shū)
 程序員 軟件設(shè)計(jì)師 網(wǎng)絡(luò)管理員 網(wǎng)絡(luò)工程師 系統(tǒng)分析師 數(shù)據(jù)庫(kù)系統(tǒng)工程師
1
2
3
4
5
6
7
8
9
10
ak47  
【字體: 程序員考試補(bǔ)課筆記-第九天
程序員考試補(bǔ)課筆記-第九天
spks.exam8.com 來(lái)源:考試吧(Exam8.com) 更新:2004-12-29 23:59:00 軟件水平考試 考試論壇
今天終于到了C語(yǔ)言的核心部份了,指針一直都是被學(xué)習(xí)C語(yǔ)言公認(rèn)為最難的一個(gè)大重點(diǎn)了,如果假如我們不學(xué)C語(yǔ)言的指針的話(huà),那我們可以說(shuō)根本沒(méi)有學(xué)過(guò)C語(yǔ)言了。不過(guò)話(huà)說(shuō)回來(lái),在我剛開(kāi)始接觸C的時(shí)候前面的基本語(yǔ)法倒是很快的過(guò)了,可是學(xué)到指針結(jié)合到數(shù)組里就傻了眼,因?yàn)槲腋究床幻鳛槭裁纯梢杂羞@么多的數(shù)組調(diào)用方式(結(jié)合指針)。其實(shí)我下面的三言?xún)烧Z(yǔ)也很難說(shuō)的明白指針這家伙的,請(qǐng)大家在上機(jī)里多多調(diào)試看看,待增加了經(jīng)驗(yàn)后再回頭看看指針這章,相信也能全摸透了。因?yàn)槲乙彩沁@樣過(guò)來(lái)的,我還特別看了很多運(yùn)用指針?lè)矫娴脑闯绦颉?BR>  現(xiàn)在我們就從相對(duì)于二維數(shù)組來(lái)說(shuō)比較簡(jiǎn)單的一維數(shù)組開(kāi)始吧,先看看如何定義一個(gè)指向一維數(shù)組的指針吧。
int a[5]={1,2,3,4,5};
int *p;
p=a; /*這里a因?yàn)槭菙?shù)組的變量名,它的值是這個(gè)數(shù)組的首地址*/
跟著我們可以通過(guò)指針來(lái)改變數(shù)組的值
p++;
*p=6; /*那么數(shù)組的第二個(gè)元素就等于6了*/
  這里的意思就是讓指針向下移一個(gè),這樣一來(lái)指向了數(shù)組的第二個(gè)元素。我們?cè)偌?xì)一點(diǎn)看看它的地址,通過(guò)這個(gè)指針,即當(dāng)前指向的元素的地址。那么地址又是怎么運(yùn)行的呢?p++這個(gè)命令就是讓地址往下移的了,如果按照數(shù)組a 的類(lèi)型來(lái)看,數(shù)組a是一個(gè)整數(shù)的類(lèi)型,占的空間是兩字節(jié),而p++就只加1,頂多都是到第一個(gè)元素的后一半里,哪里可以指到第二個(gè)元素呢?其實(shí)這里就關(guān)系到定義指針時(shí)的類(lèi)型,我們這里定義的也是整型類(lèi)型,"對(duì)啊,這里定義整型是對(duì)的啊,因?yàn)樗赶蛘螖?shù)據(jù)嘛,那么當(dāng)然就是一定要定義這種類(lèi)型啦",其實(shí)這并不是真正的答案,而且也不必一定要定義為跟指向的數(shù)據(jù)一樣類(lèi)型,我們完全可以定義指針的類(lèi)型為其它的。就比如定義為float吧,不過(guò)這里執(zhí)行p++就直接跳過(guò)了一個(gè)數(shù)組元素,那么現(xiàn)在我們來(lái)看看究竟是怎么一回事。其實(shí)我們定義的指針類(lèi)型就是用來(lái)結(jié)合指針,進(jìn)行一定規(guī)則的運(yùn)算方式。這里很明顯可以看出如果是定義int 類(lèi)型的就可以到第二個(gè)元素,說(shuō)明了p++不是簡(jiǎn)單的地址加一,而是先結(jié)合這個(gè)是什么類(lèi)型才進(jìn)行運(yùn)算的,加一次就等于地址移了2位了。float道理一樣移4位,所以得到的結(jié)合是移到第三個(gè)元素。

再往下看看:
a=a+1;
這里我們進(jìn)行地址移位賦值,不過(guò)這條命令是錯(cuò)誤的,C語(yǔ)言里數(shù)組名是一個(gè)地址常量,所以不以試圖改變它的值。
接下來(lái)簡(jiǎn)單地說(shuō)一說(shuō)二維數(shù)組,因?yàn)槲覀兘裉斓娜蝿?wù)就是首先搞清一維數(shù)組先,F(xiàn)在我們先來(lái)定義一個(gè)二維數(shù)組
int a[2][4];
  這里我不再重復(fù)書(shū)里講的東西,我講一下老師給我們的那種思想。我們這樣來(lái)看一個(gè)二維數(shù)組,就是一維數(shù)組的元素又為是一維數(shù)組,這樣嵌套。當(dāng)然其它的多維數(shù)維都是這樣一直嵌套下去的了。我們先看看這個(gè)圖如圖第九天圖一這樣就很容易說(shuō)明了為什么a[0] 和 &a[0]為什么是一樣都是代表著地址,其實(shí)都只是首地址,這里從文字很難可以說(shuō)通,但是從意義上就可以理解。我們把二維數(shù)組的整列都充當(dāng)為一個(gè)一維數(shù)組,不把它看作二維,這樣得出如下:
a[1][1];
充當(dāng)一維 M為名
M[1]; /*調(diào)用第二個(gè)元素*/
我們?cè)囍阉卸歼@樣看作,定義這樣的一個(gè)一維數(shù)組
int a0[4],a1[4],a2[4];
這樣一來(lái),我們就知道a0、a1、a2都是首地址了。
好了,可能也越說(shuō)越模糊了,如果看不明白還是按照自己原來(lái)的思想去考慮數(shù)組吧,這是因?yàn)槊總(gè)人都有自己的的想法和理解。

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索  
看了本文的網(wǎng)友還看了:
軟件水平考試權(quán)威輔導(dǎo)教材: 訂書(shū)電話(huà):010-62168566  更多>>>
網(wǎng)友評(píng)論
昵 稱(chēng): *  評(píng) 分: 1分 2分 3分 4分 5分
標(biāo)題:   匿名發(fā)表    (共有條評(píng)論)查看全部評(píng)論>>
版權(quán)聲明 -------------------------------------------------------------------------------------
  如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  付款方式  站內(nèi)導(dǎo)航  客服中心  友情鏈接  考試論壇  網(wǎng)站地圖
Copyright © 2004-2008 考試吧軟件水平考試網(wǎng) All Rights Reserved    
中國(guó)科學(xué)院研究生院權(quán)威支持(北京) 電 話(huà):010-62168566 傳 真:010-62192699
百度大聯(lián)盟黃金認(rèn)證  十佳網(wǎng)絡(luò)教育機(jī)構(gòu)  經(jīng)營(yíng)許可證號(hào):京ICP060677