c++引用和指針有哪些區(qū)別-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)c++引用和指針有哪些區(qū)別的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)提供從項目策劃、軟件開發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評估等整套的建站服務(wù),主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),app軟件開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。創(chuàng)新互聯(lián)公司深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

區(qū)別:1、指針有自己的一塊空間,而引用只是一個別名;2、指針在使用中可以指向其它對象,但是引用只能是一個對象的引用,不能被改變;3、指針可以有多級指針(例**p),而引用至于一級;4、指針和引用使用“++”運算符的意義不一樣。

1、變量

首先最重要的,variable的定義,當(dāng)你申明一個變量的時候,計算機會將指定的一塊內(nèi)存空間和變量名進(jìn)行綁定;這個定義很簡單,但其實很抽象,例如:int x = 5; 這是一句最簡單的變量賦值語句了, 將5賦值于名字叫做x的內(nèi)存空間,其本質(zhì)是將值5賦值到一塊內(nèi)存空間,而這個內(nèi)存空間名叫做x。

c++引用和指針有哪些區(qū)別

變量在內(nèi)存中的操作其實是需要經(jīng)過2個步驟的:

  • 找出與變量名相對應(yīng)的內(nèi)存地址。

  • 根據(jù)找到的地址,取出該地址對應(yīng)的內(nèi)存空間里面的值進(jìn)行操作。

2、指針

指針的特殊之處在于:指針變量相對應(yīng)的內(nèi)存空間存儲的值恰好是某個內(nèi)存地址。這也是指針變量區(qū)別去其他變量的特征之一。例如某個指針的定義如下:

int x = 5;
int *ptr = &x;

ptr即是一個指正變量名。通過指針獲取這個指針指向的內(nèi)存中的值稱為解引用。空指針是不能解引用的。

指針內(nèi)存空間的表示如下:

c++引用和指針有哪些區(qū)別

3、引用

引用(reference)在C++中也是經(jīng)常被用到,尤其是在作為函數(shù)參數(shù)的時候,需要在函數(shù)內(nèi)部修改更新函數(shù)外部的值的時候。首先我們必須明確的一點就是:引用是一種特殊的指針。

引用是一個指向其它對象的常量指針,它保存著所指對象的存儲地址。并且使用的時候會自動解引用,而不需要像使用指針一樣顯式提領(lǐng)。

例如引用的定義如下:

int x = 5;
int &y = x;

4.指針和引用的區(qū)別總結(jié)

  • 指針有自己的一塊空間,而引用只是一個別名;

  • 使用sizeof看一個指針的大小是4,而引用則是被引用對象的大??;

  • 指針可以被初始化為NULL,而引用必須被初始化且必須是一個已有對象的引用;

  • 作為參數(shù)傳遞時,指針需要被解引用才可以對對象進(jìn)行操作,而直接對引用的修改都會改變引用所指向的對象;

  • 指針在使用中可以指向其它對象,但是引用只能是一個對象的引用,不能被改變;

  • 指針可以有多級指針(**p),而引用至于一級;

  • 指針和引用使用++運算符的意義不一樣;

  • 如果返回動態(tài)內(nèi)存分配的對象或者內(nèi)存,必須使用指針,引用可能引起內(nèi)存泄露。

感謝各位的閱讀!關(guān)于c++引用和指針有哪些區(qū)別就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

分享標(biāo)題:c++引用和指針有哪些區(qū)別-創(chuàng)新互聯(lián)
URL鏈接:http://muchs.cn/article4/dpsgie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化定制網(wǎng)站微信公眾號、品牌網(wǎng)站制作ChatGPT、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)