首頁考試吧論壇Exam8視線考試商城網(wǎng)絡(luò)課程模擬考試考友錄實(shí)用文檔求職招聘論文下載
2014中考
法律碩士
2014高考
MBA考試
2014考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點(diǎn)日語
職稱英語
口譯筆譯
申碩英語
零起點(diǎn)韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點(diǎn)英語
托福考試
托業(yè)考試
零起點(diǎn)法語
雅思考試
成人英語三級
零起點(diǎn)德語
等級考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報 關(guān) 員
外 銷 員
價格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會計從業(yè)資格
基金從業(yè)資格
統(tǒng)計從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計師
會計職稱
法律顧問
ACCA考試
注冊會計師
資產(chǎn)評估師
審計師考試
高級會計師
注冊稅務(wù)師
國際內(nèi)審師
理財規(guī)劃師
美國注冊會計師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價師
二級建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
造價員考試
注冊計量師
環(huán)保工程師
化工工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
監(jiān)理工程師
房地產(chǎn)估價
土地估價師
安全評價師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評價師
土地登記代理人
繽紛校園 實(shí)用文檔 英語學(xué)習(xí) 作文大全 求職招聘 論文下載 訪談|游戲
計算機(jī)等級考試
您現(xiàn)在的位置: 考試吧 > 計算機(jī)等級考試 > 計算機(jī)二級考試 > C加加 > 復(fù)習(xí)資料 > 正文

2014年計算機(jī)二級C++考點(diǎn)歸納:數(shù)組、指針與引用

  4.2 指針

  指針(即指針變量)是C+ +語言最大的功能之一。一個指針是一個特定類型數(shù)據(jù)的存儲地址,比如一個變量的地址。

  與其他類型變量一樣,指針變量也必須要聲明。指針變量聲明的一般形式為:

  <數(shù)據(jù)類型>*<變量名>;

  其中,<數(shù)據(jù)類型>是指針?biāo)笇ο蟮念愋,在C+ +中可以指向任何C+ +類型。<變量名>是指針變量名。

  指針使用兩種特殊的運(yùn)算符——*和&。

  一元(單目)運(yùn)算符&用于返回其操作對象的內(nèi)存地址,其操作對象通常為一個變量名。例如:

  ptr=&total;

  把變量total的內(nèi)存地址存到指針變量ptr中。該地址是total變量在計算機(jī)內(nèi)存中的存儲地址。

  第二個與指針相關(guān)的運(yùn)算符是*,它與&運(yùn)算符作用相反。作為一元運(yùn)算符的*用于返回其操作數(shù)所指對象的值,因此,該運(yùn)算符要求其操作對象為一個指針。

  1指針和地址

  (1)指針說明

  從指針的定義可知,指針是用所指對象類型來表征的。在使用任何指針變量之前必須先給它賦一個所指合法具體對象的地址值。

  如何使一個指針指向一個具體對象:

 、偈褂胣ew運(yùn)算符(或malloc和alloc等函數(shù))給指針分配一個具體空間。

  ②將另一個同類型的指針賦給它以獲得值。

 、弁ㄟ^&運(yùn)算符指向某個對象。

  (2)指針運(yùn)算

  盡管指針中存放的是變量的地址,但在C+ +中指針只能進(jìn)行如下運(yùn)算。

 、僦羔樅驼土靠梢赃M(jìn)行加減

  ②若p1,p2為指針,當(dāng)p1和p2指向同一類型時,可以進(jìn)行賦值。

 、蹆蓚指向同一類型的指針,可進(jìn)行= =,>,<等關(guān)系運(yùn)算,其實(shí)就是地址的比較。

 、軆蓚指向同一數(shù)組成員的指針可進(jìn)行相減,結(jié)果為兩個指針之間相差元素的個數(shù)。

  注意:兩指針不能相加。

  2指針和數(shù)組

  在C+ +中,指針和數(shù)組的關(guān)系極為密切。實(shí)際上,數(shù)組的參數(shù)傳遞、數(shù)組元素的存取,都可通過指針操作來完成。指針和數(shù)組常常可以互換。

  在C+ +中,數(shù)組的名字就是指向該數(shù)組第一個元素(下標(biāo)為0)的指針,即該數(shù)組第一個元素的地址,也即數(shù)組的首地址。

  一般情況下,一個數(shù)組元素的下標(biāo)訪問a[i]等價于相應(yīng)的指針訪問*(a+i)。但特別注意:數(shù)組名和指針(變量)是有區(qū)別的,前者是常量,即數(shù)組名是一個常量指針,而后者是指針變量。因此,盡管我們可寫pa=a;但不能寫:a=pa;或pa=&a;因?yàn)槲覀儾荒芨淖兂A康闹,也不能取常量的地址?/P>

  數(shù)組名可作為參數(shù)進(jìn)行傳遞。當(dāng)將數(shù)組名傳給函數(shù)時,實(shí)際上所傳遞的是數(shù)組的開始地址。(即數(shù)組第一個元素的地址)

  為什么要使用指針?簡單地說指針運(yùn)算比數(shù)組運(yùn)算的速度快。

  此外,使用指針的另外一個原因是在大量數(shù)據(jù)傳遞時,使用傳遞指針要遠(yuǎn)比傳遞數(shù)據(jù)本身效率高的多,如在函數(shù)參數(shù)傳遞及函數(shù)返回值時。當(dāng)然,使用指針會給程序帶來安全隱患(如指針懸掛問題),同時還使得程序的可讀性降低(顯然,用數(shù)組實(shí)現(xiàn)的程序要比用指針實(shí)現(xiàn)的程序的可讀性要好)。

  對于字符串常量,可以把它看成是一個無名字符數(shù)組,C+ +編譯程序會自動為它分配一個空間來存放這個常量,字符串常量的值本身就是指向這個無名字符數(shù)組的第一個字符的指針,其類型是字符指針。

  3指針數(shù)組和函數(shù)指針

  (1)指針數(shù)組

  指針數(shù)組就是由指針組成的數(shù)組,即數(shù)組中的每一個元素都是指向同一類型對象的指針。

  指針數(shù)組可以是全局的、靜態(tài)的和局部的。字符指針數(shù)組和二維字符數(shù)組在許多方面是一樣的,如初始化形式、成員訪問方式,因此我們有必要了解它們的區(qū)別和各自的使用場合。

  盡管二維字符數(shù)組與字符指針數(shù)組在存儲形式上不同,但它們在初始化形式以及訪問元素方式上卻是相同的。

  采用指針數(shù)組的理由是:它可以節(jié)省存貯空間,因而通常用來存放不同長度的字符串。例如,如果要保存從標(biāo)準(zhǔn)輸入或文件中讀入的行,字符指針數(shù)組是一個好的選擇。因?yàn)樽x入的行可能長短差異很大。

  (2)命令行參數(shù)

  在C+ +中可以實(shí)現(xiàn)帶有命令行參數(shù)的程序,它是通過main帶有參數(shù)來實(shí)現(xiàn)的。

  在C+ +中,主函數(shù)main還可以帶有參數(shù),形式如下:

  int main(int argc,char * argv[])

  或int main(int argc,char * * argv[])

  其中:

  argc為包含命令本身在內(nèi)的參數(shù)個數(shù)。

  argc為指針數(shù)組,數(shù)組元素為指向各參數(shù)(包含命令本身在內(nèi))的指針。

  (3)函數(shù)指針

  在C+ +中,允許指針指向一個函數(shù),即指向函數(shù)的指針。函數(shù)指針的說明形式為:

  類型(*標(biāo)識符)();

  例如:int (* fp)();定義了一個指向返回值為整型值的函數(shù)的指針fp。

  注意:int(*fp)();與int*fp();的不同在于,前者是函數(shù)指針,后者為返回指向int指針的函數(shù)。

  與其他類型的指針變量一樣,在使用函數(shù)指針前必須使它指向一個具體的函數(shù)。若要函數(shù)指針指向一個具體函數(shù),可通過賦值語句或參數(shù)傳遞。

  函數(shù)指針=函數(shù)名;

  該賦值語句將使一個函數(shù)指針指向一個具體函數(shù)(在C+ +中,函數(shù)名是作為指向函數(shù)的指針值來處理)。函數(shù)指針的最大用途是它可以使得一個函數(shù)作為其他函數(shù)的參數(shù)進(jìn)行傳遞,擴(kuò)展了函數(shù)的功能。

上一頁  1 2 3 4 5 下一頁

編輯推薦:

2014年上半年計算機(jī)等級考試報名時間預(yù)告

2014年計算機(jī)等級考試考試時間預(yù)測

2013年9月計算機(jī)等級考試成績查詢時間及方式預(yù)告

文章搜索
計算機(jī)等級考試欄目導(dǎo)航
版權(quán)聲明:如果計算機(jī)等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機(jī)等級考試網(wǎng)內(nèi)容,請注明出處。