中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

C++中的指針用法大搜羅
來源:易賢網 閱讀:944 次 日期:2014-09-05 15:49:34
溫馨提示:易賢網小編為您整理了“C++中的指針用法大搜羅”,方便廣大網友查閱!

在C++中,指針用得比較多,對于里面眾多的指針用法,不免弄得有些糊涂,自從我從圖書館里借到一本譚浩強教授主編的《C++面向對象程序設計》后,才幫我理清了思路。現把部分內容展現給大家,希望對大家有所幫助。

C++程序設計重要基礎就是類和對象,對象指針是很重要的一部分,包括指向對象的指針、指向對象成員的指針、this指針、指向對象的常指針、指向常對象的指針等。

1、指向對象的指針

定義:對象空間的起始地址就是對象的指針。

說明:在建立對象時,編譯系統就為每個對象分配一定的存儲空間以存放其成員,不過注意,在一般情況下不同對象的數據存儲單元中存放的數據成員是不相同,而不同對象的函數代碼卻是相同的,也就是說,它們的函數代碼是共享的。這時我們可以定義一個指針變量用來存放對象的指針。

定義指向類對象的指針變量的一般形式是:

類名 *對象指針名;

如對于與個Time類對象,我們可以有:

Time t;

Time *p;

p=&t;

我們就可以通過對象指針訪問對象和對象的成員,假如所定義的類中有數據成員hour、minute、sec,成員函數有gettime(),則

(*p).hour 即為p指向對象中的hour成員,相當于t.hour

(*p).gettime() 即為p指向對象中的成員函數gettime(),相當于t.gettime()

也可以用如下形式:

p->hour 和 p->gettime()和上面是等價的。

2、指向對象成員的指針

(1)指向對象數據成員的指針

在C中我們學過指向普通變量的指針變量,在C++中定義指向對象數據成員的指針變量的方法和定義指向普通變量的指針變量方法相同,其一般形式為:

數據類型名 *指針變量名;

如:

int *p;

p=&t.hour; //將對象t的數據成員hour的地址賦給p,p指向t.hour

(2)指向對象成員函數的指針

定義指向對象成員函數的指針變量和定義指向普通函數的指針變量不同。

在定義指向普通函數的指針變量時我們可以這樣定義:

void (*p)();

p=fun;

(*p)(); //調用fun函數

然而編譯系統要求在將函數地址賦給指針變量時必須滿足三個條件:

函數參數類型及個數要匹配

函數返回值的類型要匹配

所屬的類要匹配

顯然在上面的p與類是無關的。為了滿足第三條,我們可以為指針指定類,故定義指向對象成員函數的指針變量一般形式為:

數據類型(類名::*指針變量名)(參數表列);

可以讓指針指向公用的成員函數,如:

void (Time::*p)(); //定義指向Time類對象成員函數的指針變量p

p=&Time::gettime; //把Time類的公用成員函數gettime()地址賦給指針變量p

(t.*p)(); //調用Time類對象t的成員函數gettime()

注意:因為成員函數不存放在對象空間中,多個同類對象共享此成員函數代碼,所以在將成員函數的入口地址賦給指針變量是應寫成:

指向對象成員函數的指針變量=&類名::成員函數名;

在成員函數名后面沒有"()",如果寫成p=&Time::gettime()是錯誤的。[nextp

3、this指針

在每個成員函數中都包含了一個特殊的指針,稱為this,它是指向本類對象的指針,它的值是當前被調用成員函數所在對象的起始地址。之所以有這個指針,是因為為了保證同類的不同對象的成員函數引用的是指定對象中的數據成員,它是系統自動實現的。

如定義一個求體積的函數

int box::vol()

{return(height*width*length);}

假如已經定義了對象t,當調用成員函數t.vol()時,編譯系統就把對象t的起始地址賦給this指針,于是在成員函數引用數據成員時,根據指針this就可以引用到對象t的數據成員。所以C++把上面的函數處理成

int box::vol()

{return(this->height*this->width*this->length);}

由于this的值是當前被調用成員函數所在對象的起始地址,所以可以寫成

int box::vol()

{return((*this).height*(*this).width*(*this).length);}

所以在調用成員函數t.vlo()時,實際的調用方式為t.vol(&t),不過對象t的地址傳給this指針是由系統自動完成的,不需人為加上。

4、指向對象的常指針

將指向對象的指針變量聲明為const型且進行處始化,這樣指針值始終保持為其初值,不能改變其指向。

如:

Time t1(8,8,8),t2;

Time *const p=&t1; //常指針p指向對象t1

p=&t2; //試圖改變p的指向,非法

由上面我們可以看出定義指向對象的常指針的一般形式為:

類名 *const 指針變量名=對象的起始地址;

注意:指向對象的常指針變量的值不能改變,但可以改變它所指向對象中的數據成員的值。

常指針一般用作函數的參數,這樣就不允許在函數執行過程中改變指針變量的值,使其始終保持指向原來的對象。

5、指向常對象的指針變量

首先回顧一下指向常變量的指針變量,其一般形式為:

const 類型名 *指針變量名;

如:

const char *p;

如果一個變量已經被聲明為常變量,那么只能用指向常變量的指針變量去指向它,而不能用一般的指針變量。另外,指向常變量的指針變量除了可以指向常變量外,還可以指向未被聲明為const的變量,但也不能通過該指針改變其值。例如:

char c='a' //定義字符變量c,未聲名為const

const char *p; //定義指向常變量的指針變量p

p=&c; //p指向字符變量c

*p='b'; //非法

c='b'; //合法

說明:上例中,指針變量p指向字符變量c,并不說把c也聲明成常變量,而只是說在通過指針變量引用c時,c具有常變量的特征,其值是不能改變的,但c仍然是一個普通變量。

在指向常變量的指針中,關于函數形參的指針類型有幾點值得注意:

如果函數形參是非const型指針變量,實參只能用指向非const型指針;如果函數形參是指向const型變量的指針,實參則可以是const型的或非const型的指針變量。換句話說就是指向常變量的指針可以指向const和非const型的變量,而指向非const型變量的指針只能指向非const的變量。

用指針變量作形參時形參和實參的對應關系表

形參實參合法與否改變指針所指對象的值

指向非const型變量的指針非const變量的地址合法行

指向非const型變量的指針const變量的地址非法/

指向const型變量的指針const變量的地址合法不行

指向const型變量的指針非const變量的地址合法不行

下面說到正題,指向常對象的指針變量和指向常變量指針變量類似。

如果一個對象已經被聲明為長對象,只能用指向常對象的指針變量指向它,而不能用一般的指針變量指向它。

如果定義了一個指向常對象的指針變量且使它指向一個非const的對象,其指向的對象不能通過指針來改變。

如果定義了一個指向常對象的指針變量,是不能通過它改變所指向的對象的值的,但是指針變量本身的值是可以改變的。

如:

Time t1(8,8,8),t2; //定義對象

const time *p=&t1; //定義指向常對象的指針p,并使它指向t1

p=&t2; //合法,指針p指向對象t2

所以當我們希望在調用函數時對象的值不被修改,我們就可以把形參定義為const型的指針變量,同時用對象的地址作實參(對象可以是const或非const型);當要求對象不僅在調用函數中不被改變,而且在程序執行過程中也不發生改變,我們就把它定義為const型。所以指向常對象的指針最常用于函數的參數,以保護形參指針所指向的對象在函數執行過程中不被修改。

以上是我學習C++指針時的記錄,也是對C++指針用法的總結,我想對大家學習C++應該是很有幫助的。

更多信息請查看IT技術專欄

更多信息請查看網絡編程
上一篇:C++泛型用法
易賢網手機網站地址:C++中的指針用法大搜羅
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
黑人巨大精品欧美一区二区 | 国产人成一区二区三区影院| 久久国产精品99精品国产| 在线日韩视频| 激情婷婷久久| 国内成+人亚洲| 国产一区二区欧美| 国内自拍一区| 红桃视频国产精品| 18成人免费观看视频| 一区二区三区在线高清| 激情小说另类小说亚洲欧美| 国产日韩一区在线| 国产免费观看久久| 国产曰批免费观看久久久| 国产一区二区电影在线观看| 国产欧美一区二区精品婷婷 | 99热免费精品| 在线亚洲成人| 亚洲欧美一区二区视频| 久久精品99国产精品日本| 久久久精品一区| 免费观看欧美在线视频的网站| 久久亚洲国产精品日日av夜夜| 久热精品视频| 欧美日本久久| 国产欧美日韩一区二区三区在线观看 | 久久欧美中文字幕| 美女脱光内衣内裤视频久久网站| 久久免费视频网| 欧美精品一区在线| 国产精品电影观看| 国内成人精品2018免费看| 亚洲国产精品久久久久| 在线亚洲国产精品网站| 午夜久久久久久| 欧美va天堂| 国产精品你懂的在线欣赏| 黄色成人片子| 99精品视频网| 久久精品五月| 欧美日韩伦理在线| 狠狠色丁香久久婷婷综合_中| 亚洲欧洲精品一区二区三区不卡 | 久久久久国色av免费观看性色| 毛片精品免费在线观看| 国产精品成av人在线视午夜片| 国产日韩欧美在线播放不卡| 亚洲国产精品成人| 日韩网站在线| 久久久久99| 欧美午夜三级| 亚洲电影在线播放| 亚洲欧美日韩专区| 欧美精品二区三区四区免费看视频| 国产精品一区二区三区乱码 | 午夜亚洲视频| 欧美国产精品va在线观看| 国产精品一区二区三区四区五区 | 浪潮色综合久久天堂| 国产精品xvideos88| 在线观看视频日韩| 亚洲欧美日韩国产综合在线 | 中文国产成人精品久久一| 久久九九热re6这里有精品| 亚洲欧美日韩综合国产aⅴ| 乱中年女人伦av一区二区| 国产精品sss| 亚洲第一偷拍| 性欧美精品高清| 欧美日韩一区二区免费视频| 在线观看国产精品淫| 欧美一区二区三区的| 国产精品国产亚洲精品看不卡15| 亚洲高清二区| 老牛嫩草一区二区三区日本 | 欧美日韩精品一区| 亚洲黄色一区| 久久亚洲春色中文字幕久久久| 国产精品自拍小视频| 亚洲午夜一区二区| 国产精品成人免费视频| 野花国产精品入口| 欧美午夜激情小视频| 一本色道久久综合狠狠躁篇的优点| 欧美激情一区二区三区| 亚洲国产你懂的| 欧美大片第1页| 1204国产成人精品视频| 久久亚洲欧美| 亚洲国产欧美国产综合一区| 欧美黄网免费在线观看| 雨宫琴音一区二区在线| 美女精品在线| 久久亚洲精品一区二区| 一区二区亚洲精品国产| 久久综合色8888| 91久久久久久久久久久久久| 欧美高清不卡| 日韩亚洲国产精品| 欧美午夜一区二区| 午夜一级久久| 在线播放国产一区中文字幕剧情欧美| 久久午夜av| 亚洲精品乱码久久久久久| 欧美日韩高清在线一区| 正在播放亚洲一区| 欧美午夜视频在线| 久久国产主播| 亚洲全部视频| 国产精品久久久久久久第一福利 | 欧美日韩在线免费| 亚洲男同1069视频| 国产亚洲欧美色| 狂野欧美激情性xxxx欧美| 亚洲国产精品久久久久婷婷老年 | 欧美成人午夜77777| 亚洲美女色禁图| 国产精品欧美久久| 久久免费视频在线| 中文一区二区在线观看| 国产麻豆成人精品| 欧美成人一区二区三区在线观看| 亚洲美女中文字幕| 国产欧美韩国高清| 久久综合五月| 亚洲午夜精品一区二区三区他趣| 国产精品日本| 蜜桃av一区二区在线观看| 正在播放亚洲| 国产一区二区三区奇米久涩 | 国产精品久久一级| 久久精品亚洲精品国产欧美kt∨| 亚洲国产第一| 国产日韩专区在线| 欧美日本簧片| 久久亚洲精品一区| 亚洲天堂黄色| 亚洲欧洲日产国产网站| 国产一区二区三区久久悠悠色av| 欧美日本中文| 美女久久一区| 久久国产主播| 亚洲——在线| 亚洲美女视频在线免费观看| 狠狠色伊人亚洲综合成人| 国产精品久久久久久久久果冻传媒| 免费试看一区| 久久久久国产一区二区| 亚洲欧美精品| 中日韩视频在线观看| 亚洲黄色成人久久久| 国产日韩欧美另类| 国产精品欧美一区二区三区奶水| 欧美激情一二三区| 免费观看亚洲视频大全| 久久精品动漫| 欧美影院成年免费版| 亚洲一二三区在线观看| 日韩视频一区| 亚洲日本欧美天堂| 亚洲国产毛片完整版| 精品福利电影| 狠狠色狠狠色综合| 国产人久久人人人人爽| 国产精品久久久久9999高清 | 国产午夜一区二区三区| 国产精品久久久久久久午夜片| 欧美久久久久久久久| 欧美a级理论片| 女仆av观看一区| 男男成人高潮片免费网站| 久久婷婷亚洲| 久久亚洲国产精品日日av夜夜| 久久久久91| 美女精品在线观看| 女仆av观看一区| 欧美精品在线播放| 欧美日韩小视频| 国产精品免费看久久久香蕉| 国产精品捆绑调教| 国产视频一区二区在线观看| 国产亚洲第一区| 激情小说另类小说亚洲欧美| 亚洲国产99精品国自产| 亚洲国产色一区| 99国产精品久久久久久久成人热 | 亚洲国产成人av在线| 在线精品观看| 亚洲国产免费| 一本到高清视频免费精品| 在线一区二区三区四区| 午夜精品久久久久久久久久久| 欧美伊人影院| 欧美成人嫩草网站| 欧美视频在线免费| 国产一区二区| 亚洲三级色网| 午夜精品在线| 欧美成人一区二区三区片免费|