引用與指標區別
區別:
- 引用不能為空,當引用被建立時,它必須被初始化;指標可以為空值,可以在任何時候被初始化
- 一旦一個引用被初始化為指向一個物件,它就不能改變為另一個物件的引用。指標則可以在任何時候指向另一個物件
- 不可能有NULL引用,必須確保引用是和一塊的合法的儲存單元關聯
sizeof( 引用 )
得到的是所指向的變數(物件)的大小;sizeof( 指標 )
得到的是指標本身的大小- 給引用賦值修改的是該引用所關聯的物件的值,而並不是使引用與另一個物件關聯
int i = 3,j = 1;
int &ref = i;
ref = j;//是將 i 修改為1,而不是繫結到 j ;
- 使用引用時不需要解引用,而指標需要解引用,引用和指標的自增(++)操作運算意義不一樣
- 如果返回動態分配的物件或記憶體,必須使用指標,引用可能引起記憶體洩漏
- 當使用 & 運算子取一個引用的地址時,其值為所引用變數的地址;而對指標使用 & 運算,取的是指標變數的地址
相關推薦
引用與指標區別
區別: 引用不能為空,當引用被建立時,它必須被初始化;指標可以為空值,可以在任何時候被初始化 一旦一個引用被初始化為指向一個物件,它就不能改變為另一個物件的引用。指標則可以在任何時候指向另一個物件 不可能有NULL引用,必須確保引用是和一塊的合法的儲存單元關聯
函式返回指標,引用與指標區別
1,函式不可以返回棧記憶體的指標,但是可以返回堆記憶體的指標,可以free掉兩次指向空的指標,但是不能連續free兩次指向記憶體的指標,會產生已放棄 int main() { int *a; a = (int *)malloc(10); a[0] = 1
c++引用與指標的區別
★ 相同點: 1. 都是地址的概念; 指標指向一塊記憶體,它的內容是所指記憶體的地址;引用是某塊記憶體的別名。 ★ 區別: 1. 指標是一個實體,而引用僅是個別名; 2. 引用使用時無需解引用(*),指標需要解引用;
2017033001c++引用與指標的區別(著重理解)
★相同點: 1. 都是地址的概念; 指標指向一塊記憶體,它的內容是所指記憶體的地址;引用是某塊記憶體的別名。 ★區別: 1. 指標是一個實體,而引用僅是個別名; 2. 引用使用時無需解引用(*),指標需要解引用; 3. 引用只能在定義時被初始化一次,
c++引用與指標的區別(著重理解)
★ 相同點: 1. 都是地址的概念; 指標指向一塊記憶體,它的內容是所指記憶體的地址;引用是某塊記憶體的別名。 ★ 區別: 1. 指標是一個實體,而引用僅是個別名; 2. 引用使用時無需解引用(*),指標需要解引用; 3.
【C++】C++中的引用與指標
想必大家對C++中的指標都有所瞭解,但是什麼是引用呢?C++11標準引入了“引用”的新功能。 引用 引用(reference):給物件起了另外一個名字,引用型別引用(refers to)另外一種型別,通過將宣告符寫成&d的形式來定義引用型別,其中d是宣告的變數名: int val = 10
c++的引用與指標的關係
1.引用的概念及用法 概念:引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。 溫馨提示:引用不是定義一個新的變數 定義的格式為: 型別 &引用變數名 = 已定義過的變數名; 用法: 舉個例
VC 學習之三,引用與指標
從概念上講。指標從本質上講就是存放變數地址的一個變數,在邏輯上是獨立的,它可以被改變,包括其所指向的地址的改變和其指向的地址中所存放的資料的改變。 而引用是一個別名,它在邏輯上不是獨立的,它的存在具有依附性,所以引用必須在一開始就被初始化,而且其引用的物件在其整個生命週期中
C++引用與指標的關係
(1)引用總是指向一個物件,沒有所謂的 null reference .所有當有可能指向一個物件也由可能不指向物件則必須使用 指標. 由於C++ 要求 reference 總是指向一個物件所以 reference要求有初值. String & rs = stri
C++傳遞引用與傳指標、傳值的區別
引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法:型別識別符號 &引用名=目標變數名; 引用最大的好處就是提高函式效率以及節省空間; 關鍵問題一、傳遞引用與傳指標、傳值的區別? 值
一、初級篇——指標(*)、取地址(&)、解引用(*)與引用(&)的區別
1. 初步瞭解——指標與取地址 先看程式: #include<stdio.h> int main(void) { int num = 7; int *p = #//初始化指標,也可以寫作int* p = # printf
詳解c++ 引用(reference)與 指標(pointer)的區別與聯絡
引用(reference) 與指標(pointer)之間有什麼區別和聯絡呢?我相信,對於很多初學c++的程式猿來說,不是一件簡單的事.那麼在c++中,引用與指標到底有什麼聯絡和區別呢?要弄清楚這個問題,我們必須明白 : 1.什麼是引用? 2.怎樣使用引用?
引用傳遞與指標傳遞區別
#include<iostream> using namespace std; //值傳遞 void change1(int n){ cout<<"值傳遞--函式操作地址"<<&n<<endl; //顯示的是拷貝的地址
[轉載]C++中引用傳遞與指標傳遞區別(進一步整理)
這篇文章是在學習了編譯原理引數傳遞後對c++和Java按引用傳遞的不同表現產生疑問,在網上搜索找到的博文,這裡提出了按地址傳遞和按引用傳遞是不同的,按我的個人理解,Java的物件引數的傳遞,是按地址傳遞,而按地址傳遞,需要有一個傳遞到被呼叫函式的指向實
C#中引用傳遞與指標傳遞區別
從概念上講。指標從本質上講就是存放變數地址的一個變數,在邏輯上是獨立的,它可以被改變,包括其所指向的地址的改變和其指向的地址中所存放的資料的改變。 而引用是一個別名,它在邏輯上不是獨立的,它的存在具有依附性,所以引用必須在一開始就被初始化,而且其引用的物件在其整個生命週
引用&,引用的使用,常引用,引用與多態,引用與指針的區別
C/C++什麽是“引用”?申明和使用“引用”要註意哪些問題? 答:引用就是某個目標變量的“別名”(alias),對應用的操作與對變量直接操作效果完全相同。申明一個引用的時候,切記要對其進行初始化。引用聲明完畢後,相當於目標變量名有兩個名稱,即該目標原名稱和引用名,不能再把該引用名作為其他變量名的別名。聲明一
按值傳遞、按指標傳遞、按引用傳遞的區別
值傳遞 形參是實參的拷貝(會在棧記憶體中建立形參並拷貝實參的值),函式執行完畢後會自動清除棧記憶體。所以從被呼叫函式的角度來說,值傳遞是單向的,形參不能改變實參。當內部函式不需要改變實參則採用值傳遞。 指標傳遞 指標傳遞引數的本質是值傳遞,只不過它傳遞的是一個地址值
5、【C++】指標/引用(指標和引用的區別)
一、指標 int p=12; int *q; int *q=&p; 這裡p為int型別的變數,&p就是p的記憶體地址,*q是一個int型別的變數(是一個值),q為指標是地址,int q=&p;把p的地址賦給了指標q,所以q就
常量指標與指標常量的區別(轉帖)
三個名詞雖然非常繞嘴,不過說的非常準確。用中國話的語義分析就可以很方便地把三個概念區分開。 一) 常量指標。 常量是形容詞,指標是名詞,以指標為中心的一個偏正結構短語。這樣看,常量指標本質是指標,常量修飾它,表示這個指標乃是一個指向常量的指標(變數)。 指標指向的物件是常量,那麼這個物件
C++中const與引用,指標之間的關係要點
一、const關鍵字 1、有時我們希望定義這樣的一個變數,它的值不能被改變。這時就可以在定義變數時加上const關鍵字。例如 const int bufSize=512; const型別變數可以進行大部分與非const型別變數相同操作,主要的限制就是不可以在const型別的物件上執