c/c++指針和引用初識(shí)

引用

引用為對(duì)象起了另外一個(gè)名字.通過(guò)聲明符寫(xiě)成&a的形式來(lái)定義引用類(lèi)型

例如: ? int ?v = 1024;

? ? ? ? ? ? int &vr = v; ? ? //vr指向v ? ?是v的另一個(gè)名字

? ? ? ? ? ? int &ve; ? ?//這個(gè)是錯(cuò)誤的. ?引用必須被初始化

注意:引用并不是對(duì)象,相反的,它只是一個(gè)已經(jīng)存在的對(duì)象所起的另外一個(gè)名字

定義了一個(gè)引用之后,對(duì)其進(jìn)行的所有操作都是在與之綁定的對(duì)象上進(jìn)行的

? ? ? ? ? ? vr = 2;

? ? ? ? ? ? int a = vr;

為引用賦值,實(shí)際上是把值賦給了與引用綁定的對(duì)象上.獲取引用的值,實(shí)際上是獲取了與引用綁定的對(duì)象的值.同理,以引用作為初始值,實(shí)際上是以與引用綁定的對(duì)象作為初始值

? ? ? ? int ?&v3 = vr; ? ?//v3綁定到了那個(gè)與vr綁定的對(duì)象上,就是綁定到了v上 ?


指針

指針是"指向"另外一種類(lèi)型的復(fù)合類(lèi)型,與引用類(lèi)似,指針也實(shí)現(xiàn)了對(duì)其他對(duì)象的間接訪問(wèn).

指針本身就是一個(gè)對(duì)象,允許對(duì)指針賦值和拷貝,而且在指針生命周期內(nèi)它可以先后指向幾個(gè)不同的對(duì)象.

指針無(wú)須在定義時(shí)賦初值,和其他內(nèi)置類(lèi)型一樣,在塊作用域內(nèi)定義的指針如果沒(méi)有被初始化,也將擁有一個(gè)不確定的值.

定義的指針類(lèi)型的方法將聲明符寫(xiě)成*d的形式,其中d是變量名.如果在一條語(yǔ)句中定義了幾個(gè)指針變量,每個(gè)變量前面都必須有符號(hào)*

例如: int *p1,*p2; ? // ? p1和p2都是指向int型對(duì)象的指針

? ? ? ? ? double d1,*d2;? // ? d1 是double型對(duì)象 ? ? d2是指向double對(duì)象的指針

獲取對(duì)象的地址

? ? ? 指針存放某個(gè)對(duì)象的地址,想要獲取該地址,需要使用取地址符 (&)

? ? ?例如: ?int v = 30;

? ? ? ? ? ? ? ? int *p = &v; ? // p存放變量v的地址 ?或者說(shuō)p是指向變量v的指針

? ? ? ?注意:如果指針指向了一個(gè)其他類(lèi)型的對(duì)象,對(duì)該對(duì)象的操作將會(huì)發(fā)送錯(cuò)誤


空指針

? ? ? ? ? 空指針不指向任何對(duì)象,在試圖使用一個(gè)指針之前可以先檢查它是否為空

? ? ? ? ? 一下是生成空指針的幾個(gè)方方法:

? ? ? ? ? int *p = nullptr;

? ? ? ? ? ?int *p2 = 0;

? ? ? ? ? ?int *p3 = NULL;


void*指針

void*指針是一種特殊的指針類(lèi)型,可以存放任意對(duì)象的地址


指針賦值

指針和引用都能間接訪問(wèn)對(duì)象,其中引用本身并非一個(gè)對(duì)象,一旦定義了引用,就沒(méi)法在綁定到另外的對(duì)象,之后每次使用這個(gè)引用都是訪問(wèn)它最初綁定的那個(gè)對(duì)象,而指針就沒(méi)有這個(gè)限制了.

int e = 10;

int *p1 = 0; ? ? ? ?// p1被初始化,但沒(méi)有指向任何對(duì)象

int *p2 = &e; ? ? //p2被初始化,存有 e 的地址

p1 = &e; ? ? ? ? ? ? //p1的值被改變,現(xiàn)在指向了e

*p1 = 0; ? ? ? ? ? ? ?//e的值被改變


指向指針的指針

一般來(lái)說(shuō),聲明修飾符的個(gè)數(shù)并沒(méi)有限制.當(dāng)有多個(gè)修飾符連寫(xiě)在一起時(shí),按照其邏輯關(guān)系詳加解釋即可.以指針為例,指針是內(nèi)存中的對(duì)象,像其他對(duì)象一樣也有自己的地址,因此允許把指針的地址在存放到另一個(gè)指針當(dāng)中

通過(guò)*的個(gè)數(shù)可以區(qū)分指針的級(jí)別.也就是說(shuō)**表示指向指針的指針,***表示指向指針的指針的指針,以此類(lèi)推

例如: ? int va = 1024;

? ? ? ? ? ?int *p1 = &va; ? //p1指向一個(gè)int型的指針

? ? ? ? ? ?int **pp1 = &p1; //pp1指向一個(gè)int型的指針

指向指針的引用

引用本身不是一個(gè)對(duì)象,因此不能定義指向引用的指針.但指針是對(duì)象,所以存在對(duì)指針的引用

例如: ?int i = 42;

? ? ? ? ? int *p; ? ? ? ? ? ? ? //p是一個(gè)int型的指針

? ? ? ? ? int *&r = p; ? ? ? //r是一個(gè)對(duì)指針p的引用

? ? ? ? ? r = &i; ? ? ? ? ? ? ? ?//r引用了一個(gè)指針,因此給r賦值 &i ? 就是令p指向i

? ? ? ? ?*r=0; ? ? ? ? ? ? ? ? //解引用r得到 i,也就是p指向的對(duì)象,將 i 值改為0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蔗草,一起剝皮案震驚了整個(gè)濱河市饶唤,隨后出現(xiàn)的幾起案子忌卤,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異春贸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)遗遵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)萍恕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人瓮恭,你說(shuō)我怎么就攤上這事雄坪。” “怎么了屯蹦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵维哈,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我登澜,道長(zhǎng)阔挠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任脑蠕,我火速辦了婚禮购撼,結(jié)果婚禮上跪削,老公的妹妹穿的比我還像新娘。我一直安慰自己迂求,他們只是感情好碾盐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著揩局,像睡著了一般毫玖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凌盯,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天付枫,我揣著相機(jī)與錄音,去河邊找鬼驰怎。 笑死阐滩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的县忌。 我是一名探鬼主播掂榔,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼芹枷!你這毒婦竟也來(lái)了衅疙?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鸳慈,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后喧伞,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體走芋,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年潘鲫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翁逞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溉仑,死狀恐怖挖函,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浊竟,我是刑警寧澤怨喘,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站振定,受9級(jí)特大地震影響必怜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜后频,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一梳庆、第九天 我趴在偏房一處隱蔽的房頂上張望暖途。 院中可真熱鬧,春花似錦膏执、人聲如沸驻售。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)芋浮。三九已至,卻和暖如春壳快,著一層夾襖步出監(jiān)牢的瞬間纸巷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工眶痰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瘤旨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓竖伯,卻偏偏與公主長(zhǎng)得像存哲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子七婴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 前言:指針是 C語(yǔ)言一個(gè)重要概念祟偷,也是C 語(yǔ)言的一個(gè)重要特色。使程序簡(jiǎn)潔打厘、緊湊修肠、高效。指針乃是C之精華户盯。 數(shù)據(jù)在內(nèi)...
    瀟湘候晨雪閱讀 767評(píng)論 0 0
  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類(lèi)型嵌施。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu)莽鸭; ...
    朱森閱讀 3,451評(píng)論 3 44
  • 聲明(declaration),定義(definition) 如果想聲明一個(gè)變量而非定義它,就在變量名前添加關(guān)鍵字...
    屋頂上的橡皮人閱讀 1,303評(píng)論 1 50
  • Linux 命令 查看命令位置:which 查找命令所在的位置吗伤。 查看當(dāng)前用戶(hù):whoami 該命令用戶(hù)查看當(dāng)前系...
    不再少少年閱讀 301評(píng)論 0 0
  • 巴黎是個(gè)浪漫之地,可惜于而言振保只是一處路過(guò)硫眨。 這一次路過(guò)足淆,對(duì)他來(lái)說(shuō),亦是一種奢侈礁阁,振保是個(gè)苦學(xué)生巧号,在英國(guó)愛(ài)丁堡一...
    謝慢慢的海上云朵閱讀 2,226評(píng)論 0 3