在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

C++中指針

前言:本站為你精心整理了C++中指針?lè)段?,希望能為你的?chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢(xún)。

C++中指針

摘要:本文對(duì)c++各種類(lèi)型的指針進(jìn)行了深刻全面地討論,把各種指針的常量,變量的聲明、賦值和訪問(wèn)都一一列出,這對(duì)利用指針開(kāi)發(fā)大型軟件的程序員來(lái)說(shuō)無(wú)疑是一個(gè)非常有力的工具。本文還揭示了指針變量與數(shù)組名的內(nèi)在關(guān)系,以及類(lèi)的靜態(tài)數(shù)據(jù)指針與非靜態(tài)數(shù)據(jù)指針的根本區(qū)別。

關(guān)鍵詞:指針類(lèi)型、指針常量、指針變量、數(shù)組名

Abstract:AllkindsofpointersinC++arethoroughlyanddeeplydiscussed.Theconstantquantity,variables,theformofendowingwithvalueandaccesstodataarelistedlikeatable.Thisisundoubtedlyausefultooltoaprogrammerwhodevelopsbigsoftwares.Theauthorbringtolighttherelationshipbetweenthepointervariablesandthenameofnumbergroups.Healsorevealstheessentialdistinctionbetweenastaticpointerandnon-staticpointer.

Keywords:pointertypedata,pointerconstantquantity,pointervariable,anumbergroup’sname

C++中的“指針”實(shí)質(zhì)上是指針類(lèi)型的數(shù)據(jù),所以指針既有常量,也有變量。但是人們往往只是簡(jiǎn)單的說(shuō)“指針”,沒(méi)有帶“常量”或“變量”二字。那么,該“指針”到底是指常量呢還是指變量呢?這個(gè)問(wèn)題要根據(jù)它所屬的那個(gè)整句才能回答。C++中的指針按照它所指向的對(duì)象可以劃分為變量指針、數(shù)組指針、函數(shù)指針、對(duì)象指針、類(lèi)的成員數(shù)據(jù)指針和類(lèi)的成員函數(shù)指針。

一、變量指針

設(shè)type代表任意一種基本類(lèi)型說(shuō)明符,X是該類(lèi)型的變量,則:

1、X的指針常量為&X。

2、一個(gè)type型指針變量P的聲明格式為:type*P;

3、使P指向X,也就是說(shuō)用&X向P賦值的格式為:①用&X初始化;②在聲明了P后向P賦值。

二、數(shù)組指針

設(shè)A是一個(gè)有3行4列個(gè)type型變量元素的一個(gè)二維數(shù)組,則:

1、A有兩個(gè)意義:①表示這12個(gè)type型變量構(gòu)成的整體。②表示A<0>的地址,即A=&A<0>。

A<0>也有兩個(gè)意義:①表示A的第一行的4個(gè)type型變量構(gòu)成的整體(A中左下標(biāo)為0的一行元素);②表示A<0><0>的地址。

2、①聲明一個(gè)指向type型的有3行4列個(gè)元素的二維數(shù)組的指針P的格式為:type(*P)<3><4>;②聲明一個(gè)指向type型的有4個(gè)元素的一維數(shù)組指針P1的格式為:type(*P1)<4>;③聲明一個(gè)指向type型變量的指針P2的格式為:type*P2。

3、①使P指向A的方式為:用&A初始化P或在聲明了P后向P賦值;②使P1指向A<1>的方式為:用“A+1”初始化P1或在聲明了P1后向P1賦值;③使P2指向A<2><1>的方式為:用&A<2><1>初始化P2或在聲明了P2后向P2賦值。

4、用A和*來(lái)表示A<2><1>的表達(dá)式為*(*(A+2)+1),表示A<0><0>的表達(dá)式為**A。

5、按3,①用P和*來(lái)表示A<2><1>的表達(dá)式為*(*(*P+2)+1);②用P1和*來(lái)表示A<2><1>的表達(dá)式為*(*(P1+1)+1);③用P2和*來(lái)表示A<0><0>的表達(dá)式為:*(P-6);

用P、P1和P2來(lái)訪問(wèn)A的元素有很多優(yōu)越性,如它們及其表達(dá)式可以進(jìn)行++運(yùn)算和--運(yùn)算而指針常量卻辦不到。

三、函數(shù)指針

設(shè)一個(gè)函數(shù)的原型為:typefun(),則:

1、fun()的指針常量為fun

2、聲明一個(gè)數(shù)據(jù)類(lèi)型為type,形參表為FL的函數(shù)指針P的格式為:type(P)(FL);

3、用一個(gè)數(shù)據(jù)類(lèi)型為type形參表為FL的函數(shù)指針只能指向數(shù)據(jù)類(lèi)型為type形參表為FL的函數(shù)。按(1)和(2),用P指向fun()的方式為:用fun初始化P或在聲明P后向P賦值。

4、用P而不用fun來(lái)調(diào)用fun()的格式為:P(和FL對(duì)應(yīng)的實(shí)參表);

四、對(duì)象指針

設(shè)t是A類(lèi)的一個(gè)對(duì)象,a和f()分別是A的一個(gè)公有變量成員和公有函數(shù)成員,則:

1、t的指針常量為&t;

2、聲明一個(gè)指向A類(lèi)的對(duì)象的指針P的格式為:A*P;

3、使P指向t的方式為:用&t初始化P或者在聲明了P后再向P賦值。

4、①用P而不用t來(lái)表示t.a的格式為:P->a;②用P而不用t來(lái)訪問(wèn)f()的格式為:P->f();

五、類(lèi)的數(shù)據(jù)成員指針

設(shè)t是A類(lèi)的一個(gè)對(duì)象,a是A的一個(gè)非靜態(tài)type型成員數(shù)據(jù),s是A的一個(gè)靜態(tài)type1型成員數(shù)據(jù),則:

1、①A::a的相對(duì)指針常量為&A::a;②A::s的物理指針常量為&A::s

2、①可以指向A類(lèi)的type型非靜態(tài)成員的指針P1的聲明格式為:typeA::*P1;②可以指向A類(lèi)type型靜態(tài)成員的指針P2的聲明格式為:type1*p2;

3、①使P1指向A::a的方式為:用&A::a初始化P1或在聲明了P1后向P1賦值;②使P2指向A::s的方式為:用&A::s初始化P2或在聲明了P2后向P2賦值。

4、①用P1而不用a來(lái)訪問(wèn)t.a的格式為:t.*p1;②用P2而不用s來(lái)訪問(wèn)t.s的表達(dá)式為*P2

六、類(lèi)的函數(shù)成員指針

設(shè)t是A類(lèi)的一個(gè)對(duì)象,f(FL1)是A類(lèi)的一個(gè)type型非靜態(tài)的函數(shù)成員,g(FL2)是A類(lèi)的一個(gè)type1型靜態(tài)函數(shù)成員,則:

1、①A::f()的相對(duì)指針常量為A::f;②A::g()的物理指針常量為A::g

2、①可以指向A的非靜態(tài)type型形參表為FL1的函數(shù)成員的指針P1的聲明格式為type(A::*P1)(FL1);②可以指向A的靜態(tài)type1型形參表為FL2的函數(shù)成員的指針P2的聲明格式為:type1(*P2)(FL2)

3、①使P1指向A::f()的方式是:用A::f初始化P1或在聲明了P1后向P1賦值;②使P2指向A::g()的方式是:用A::g初始化P2或者在聲明了P2之后向P2賦值。

4、①用P1而不用f來(lái)訪問(wèn)t.f()的格式為:(t.*p1)(實(shí)參表);這里的“*”為指針說(shuō)明符而不是指針運(yùn)算符;②用P2而不用g()來(lái)訪問(wèn)t.g()的格式為:P2(實(shí)參表);

七、指針的特點(diǎn)

1、數(shù)據(jù)指針+n=數(shù)據(jù)指針+(n×這個(gè)數(shù)據(jù)的字節(jié)數(shù))(n=整數(shù),n為小數(shù)不合法)。如:①設(shè)P為一個(gè)int型指針,則P+2=P的值+8(2×4);②設(shè)P1為一個(gè)有3行2列個(gè)int型變量元素的數(shù)組的指針,則P1+2=P1的值+2×24;③設(shè)A類(lèi)有16個(gè)字節(jié),P2是一個(gè)A類(lèi)的指針,則P2+2=P2的值+2×16。

2、下面的表達(dá)式不合法:函數(shù)指針+n。

參考文獻(xiàn)

<1>譚浩強(qiáng),《C++程序設(shè)計(jì)教程》,中國(guó)科學(xué)技術(shù)出版社,1995

<2>Microsoft、何曉剛譯,《VisualC++4.0教程》,科學(xué)出版社,1997。

<3>劉衛(wèi)東、沈官林譯,《數(shù)據(jù)結(jié)構(gòu)C++語(yǔ)言描述》,北京,清華大學(xué)出版社,2000

<4>邱龍、張巍,《C++語(yǔ)言入門(mén)》,北京,清華大學(xué)出版社,1999

文檔上傳者
海盐县| 平顶山市| 张家港市| 加查县| 永丰县| 察隅县| 从化市| 敦煌市| 大姚县| 阜平县| 邵阳县| 南平市| 龙井市| 远安县| 通山县| 夏津县| 兰考县| 罗平县| 苏尼特左旗| 会理县| 广州市| 彩票| 巴青县| 惠水县| 富顺县| 化州市| 德州市| 新巴尔虎右旗| 三门峡市| 临泽县| 紫金县| 滁州市| 积石山| 中江县| 博罗县| 武川县| 德昌县| 嘉义市| 巍山| 大埔县| 双城市|