用vs2012做asp網(wǎng)站/石家莊谷歌seo
1. 字符指針變量
2. 數(shù)組指針變量
3. ?維數(shù)組傳參的本質(zhì)
4. 函數(shù)指針變量
5. 函數(shù)指針數(shù)組
6. 轉(zhuǎn)移表
1. 字符指針變量
在指針的類(lèi)型中我們知道有?種指針類(lèi)型為字符指針 ?般使?: char*
這兩種方式都是把字符串中的首字符的地址賦值給pc。
在這串代碼中 str1內(nèi)容的地址與str2內(nèi)容的地址不同
而str3和str4是比較指針變量而非字符串??
因?yàn)閟tr3和str4指向的是同一個(gè)常量字符串,并不會(huì)修改。所以相同的內(nèi)容不會(huì)村兩份。str3=srtr4
2. 數(shù)組指針變量.
2.1 數(shù)組指針變量是什么
我們知道
整形指針變量: int * pint; 存放的是整形變量的地址,能夠指向整形數(shù)據(jù)的指針。
浮點(diǎn)型指針變量: float * pf; 存放浮點(diǎn)型變量的地址,能夠指向浮點(diǎn)型數(shù)據(jù)的指針
數(shù)組指針變量該是:存放的應(yīng)該是數(shù)組的地址,能夠指向數(shù)組的指針變量
思考:p1和p2是什么
p1是? p1[10]的類(lèi)型是int* 變成存放指針的數(shù)組
而p2是先與*結(jié)合變成指針在指向[10]變成了數(shù)組指針。
2.2 數(shù)組指針變量怎么初始化
如果要存放個(gè)數(shù)組的地址,就得存放在數(shù)組指針變量中
3. ?維數(shù)組傳參的本質(zhì)
我們之前學(xué)過(guò)一維數(shù)組的數(shù)組名表示的是第一個(gè)的地址
而二維數(shù)組的數(shù)組名則表示第一行的地址
所以?維數(shù)組傳參本質(zhì)上也是傳遞了地址,傳遞的是第一行這個(gè)?維數(shù)組的地址,形參也可以寫(xiě)成指針的形式
總結(jié):?維數(shù)組傳參,形參的部分可以寫(xiě)成數(shù)組,也可以寫(xiě)成指針形式
4. 函數(shù)指針變量
4.1 函數(shù)指針變量的創(chuàng)建
第一個(gè)int表示pf3 指向函數(shù)的返回類(lèi)型? (*pf3)表示函數(shù)指針變量名(int x,int y)(x和y可以不寫(xiě))?pf3 指向函數(shù)的參數(shù)類(lèi)型和個(gè)數(shù)的交代
4.2 函數(shù)指針變量的使用
分析一段代碼
0是int類(lèi)型
void(*)()是把0強(qiáng)制轉(zhuǎn)換成void(*)()類(lèi)型
前面的*是對(duì)0這個(gè)函數(shù)的解應(yīng)用
(int, void(*)(int)??
int是函數(shù)類(lèi)型
void(*)(int)是函數(shù)指針類(lèi)型? ?兩個(gè)都是形參
signal是函數(shù)名稱(chēng)
有兩個(gè)參數(shù)第一個(gè)是int類(lèi)型第二個(gè)是void(*)(int)指針類(lèi)型
void(*)(int) 返回 的是函數(shù)指針
4.3.1 typedef關(guān)鍵字
typedef 是?來(lái)類(lèi)型重命名的,可以將復(fù)雜的類(lèi)型,簡(jiǎn)單化。
如
這里的p1是int* 類(lèi)型 p2是int類(lèi)型
而用prt_t定義的 p3和p4都是int * 類(lèi)型
5. 函數(shù)指針數(shù)組
要把函數(shù)的地址存到?個(gè)數(shù)組中,那這個(gè)數(shù)組就叫函數(shù)指針數(shù)組
6. 轉(zhuǎn)移表
舉例:計(jì)算機(jī)
、
我們會(huì)發(fā)現(xiàn)這樣寫(xiě)代碼有許多重復(fù)的。
使用函數(shù)指針數(shù)組實(shí)現(xiàn)