1. 指針是C語(yǔ)言中一個(gè)重要的組成部分,使用指針編程有以下優(yōu)點(diǎn):
(1)提高程序的編譯效率和執(zhí)行速度。
(2)通過(guò)指針可使用主調(diào)函數(shù)和被調(diào)函數(shù)之間共享變量或數(shù)據(jù)結(jié)構(gòu),便于實(shí)現(xiàn)雙向數(shù)據(jù)通訊。
(3)可以實(shí)現(xiàn)動(dòng)態(tài)的存儲(chǔ)分配。
(4)便于表示各種數(shù)據(jù)結(jié)構(gòu),編寫(xiě)高質(zhì)量的程序。
2. 指針的運(yùn)算
(1)取地址運(yùn)算符&:求變量的地址
(2)取內(nèi)容運(yùn)算符*:表示指針?biāo)傅淖兞?
(3)賦值運(yùn)算
·把變量地址賦予指針變量
·同類(lèi)型指針變量相互賦值
·把數(shù)組,字符串的首地址賦予指針變量
·把函數(shù)入口地址賦予指針變量
(4)加減運(yùn)算
對(duì)指向數(shù)組,字符串的指針變量可以進(jìn)行加減運(yùn)算,如 p+n,p-n,p++,p--等。對(duì)指向同一數(shù)組的兩個(gè)指針變量可以相
減。對(duì)指向其它類(lèi)型的指針變量作加減運(yùn)算是無(wú)意義的。
(5)關(guān)系運(yùn)算
指向同一數(shù)組的兩個(gè)指針變量之間可以進(jìn)行大于、小于、 等于比較運(yùn)算。指針可與 0比較,p==0表示 p為空指針。
3. 與指針有關(guān)的各種說(shuō)明和意義見(jiàn)下表。
int *p; p為指向整型量的指針變量
int *p[n]; p為指針數(shù)組,由 n個(gè)指向整型量的指針元素組成。
int (*p)[n]; p為指向整型二維數(shù)組的指針變量,二維數(shù)組的列數(shù)為 n
int *p() p為返回指針值的函數(shù),該指針指向整型量
int (*p)() p為指向函數(shù)的指針,該函數(shù)返回整型量
int **p p為一個(gè)指向另一指針的指針變量,該指針指向一個(gè)整型量。
4. 有關(guān)指針的說(shuō)明很多是由指針,數(shù)組,函數(shù)說(shuō)明組合而成的。
但并不是可以任意組合,例如數(shù)組不能由函數(shù)組成,即數(shù)組元素不能是一個(gè)函數(shù);函數(shù)也不能返回一個(gè)數(shù)組或返回另
一個(gè)函數(shù)。例如
int a[5]();就是錯(cuò)誤的。
5. 關(guān)于括號(hào)
在解釋組合說(shuō)明符時(shí), 標(biāo)識(shí)符右邊的方括號(hào)和圓括號(hào)優(yōu)先于標(biāo)識(shí)符左邊的“*”號(hào),而方括號(hào)和圓括號(hào)以相同的優(yōu)先
級(jí)從左到右結(jié)合。但可以用圓括號(hào)改變約定的結(jié)合順序。
6. 閱讀組合說(shuō)明符的規(guī)則是“從里向外”。
從標(biāo)識(shí)符開(kāi)始,先看它右邊有無(wú)方括號(hào)或園括號(hào),如有則先作出解釋?zhuān)倏醋筮呌袩o(wú)*號(hào)。 如果在任何時(shí)候遇到了閉
括號(hào),則在繼續(xù)之前必須用相同的規(guī)則處理括號(hào)內(nèi)的內(nèi)容。例如:
int*(*(*a)())[10]
↑ ↑↑↑↑↑↑
7 6 4 2 1 3 5
上面給出了由內(nèi)向外的閱讀順序,下面來(lái)解釋它:
(1)標(biāo)識(shí)符 a被說(shuō)明為;
(2)一個(gè)指針變量,它指向;
(3)一個(gè)函數(shù),它返回;
(4)一個(gè)指針,該指針指向;
(5)一個(gè)有10個(gè)元素的數(shù)組,其類(lèi)型為;
(6)指針型,它指向;
(7)int型數(shù)據(jù)。
因此 a是一個(gè)函數(shù)指針變量,該函數(shù)返回的一個(gè)指針值又指向一個(gè)指針數(shù)組,該指針數(shù)組的元素指向整型量。
第七章:結(jié)構(gòu)與聯(lián)合
結(jié)構(gòu)類(lèi)型定義和結(jié)構(gòu)變量說(shuō)明
在實(shí)際問(wèn)題中,一組數(shù)據(jù)往往具有不同的數(shù)據(jù)類(lèi)型。例如, 在學(xué)生登記表中,姓名應(yīng)為字符型;學(xué)號(hào)可為整型或
字符型; 年齡應(yīng)為整型;性別應(yīng)為字符型;成績(jī)可為整型或?qū)嵭汀?顯然不能用一個(gè)數(shù)組來(lái)存放這一組數(shù)據(jù)。因?yàn)閿?shù)
組中各元素的類(lèi)型和長(zhǎng)度都必須一致,以便于編譯系統(tǒng)處理。為了解決這個(gè)問(wèn)題,C語(yǔ)言中給出了另一種構(gòu)造數(shù)據(jù)類(lèi)
型——“結(jié)構(gòu)”。 它相當(dāng)于其它高級(jí)語(yǔ)言中的記錄。
“結(jié)構(gòu)”是一種構(gòu)造類(lèi)型,它是由若干“成員”組成的。 每一個(gè)成員可以是一個(gè)基本數(shù)據(jù)類(lèi)型或者又是一個(gè)構(gòu)造
類(lèi)型。 結(jié)構(gòu)既是一種“構(gòu)造”而成的數(shù)據(jù)類(lèi)型, 那么在說(shuō)明和使用之前必須先定義它,也就是構(gòu)造它。如同在說(shuō)明
和調(diào)用函數(shù)之前要先定義函數(shù)一樣。
2015年全國(guó)職稱(chēng)計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 | |
全國(guó)職稱(chēng)計(jì)算機(jī)考試速成過(guò)關(guān)系列套裝:W .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書(shū)籍 |