<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦 > 論文大全 > 畢業(yè)論文 > 計算機論文 > 計算機理論 >

        對C++中指針的深入研究

        時間: 王根義1 分享

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

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

        Abstract:All kinds of pointers in C++ are thoroughly and deeply discussed.The constant quantity,variables,the form of endowing with value and access to data are listed like a table.This is undoubtedly a useful tool to a programmer who develops big softwares.The author bring to light the relationship between the pointer variables and the name of number groups.He also reveals the essential distinction between a static pointer and non-static pointer.

        Keywords:pointer type data,pointer constant quantity,pointer variable,a number group’s name

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

        一、變量指針

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

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

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

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

        二、數(shù)組指針

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

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

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

        2、①聲明一個指向type型的有3行4列個元素的二維數(shù)組的指針P的格式為:   type(*P)<3><4>;②聲明一個指向type型的有4個元素的一維數(shù)組指針P1的格式為: type(*P1)<4>;③聲明一個指向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和*來表示A<2><1>的表達式為*(*(A+2)+1),表示A<0><0>的表達式為**A。

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

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

        三、函數(shù)指針

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

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

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

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

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

        四、對象指針

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

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

        2、聲明一個指向A類的對象的指針P的格式為:A*P;

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

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

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

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

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

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

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

        4、①用P1而不用a來訪問t.a的格式為:t .* p1;②用P2而不用s來訪問t.s的表達式為*P2

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

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

        1、①A::f( )的相對指針常量為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來訪問t.f()的格式為:(t.*p1)(實參表);這里的“*”為指針說明符而不是指針運算符;②用P2而不用g()來訪問t.g( )的格式為:P2(實參表);

        七、指針的特點

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

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

        參考文獻

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

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

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

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

        3189 主站蜘蛛池模板: 久久久亚洲欧洲日产国码606| 无码国产精品一区二区免费网曝| 亚洲成人av免费一区| 亚洲a人片在线观看网址| 精品国产午夜理论片不卡| 日韩精品一区二区都可以| 中文字幕无线码免费人妻| 卡一卡2卡3卡精品网站| 欧美日韩精品一区二区视频| 免费无遮挡毛片中文字幕| 国产成人精品日本亚洲第一区| 三级黄色片一区二区三区| 国产乱人伦av在线a| 欧美日本一区二区视频在线观看 | 精品一区二区三区在线观看l| 苍井空一区二区三区在线观看| 亚洲成av一区二区三区| 亚洲岛国成人免费av| 国产精品区视频中文字幕| 国产亚洲欧洲AⅤ综合一区| 久久青草精品38国产免费| 欧美激情一区二区三区高清视频 | 嗯灬啊灬把腿张开灬动态图| 国产亚洲综合欧美视频| 精品无人乱码一区二区三区的优势| 亚洲一区二区乱码精品| 久久久网站| 日本熟妇色xxxxx日本免费看| 国产美女久久久亚洲综合| 亚洲一品道一区二区三区| 最新亚洲人成网站在线影院| 幻女free性俄罗斯毛片| 国产成人精品永久免费视频| 国产免费一区二区三区在线观看| 亚洲欧洲日韩国内高清| 国产熟睡乱子伦午夜视频| 亚洲国产成人综合精品| 五月天天天综合精品无码| 丝袜a∨在线一区二区三区不卡| 国产女人看国产在线女人| 日产精品久久久久久久蜜臀|