指標和引用

2021-08-18 03:13:09 字數 1032 閱讀 7536

定義的格式:型別&引用變數名 = 已定義過的變數名。

引用的特點:1、乙個變數可以取多個別名 2、引用必須初始化 3、引用只能在初始化的時候引用一次,不能改變為再引用其他的變數(從一而終)

可以引用乙個引用的變數(別名的別名):
int& b = a;        int &c = b;
const引用:
int d1 = 4;

const

int&d2 = d1;

d1 = 5;//d1 改變可以改變d2的值

//d2 = 6;不能,因為d2是const型別

const

int d3 = 7;

int&d4 = d3;//這樣是不可以的

const

int&d5 = d3;

//常引用可以引用非常量,非常引用不能引用常量,

這就跟const是很像的,不能將範圍擴大化,乙個常引用是可以作為乙個普通變數的別名的,但是乙個非常引用是無法做為乙個const型別變數的別名的。

引用作為引數:

通過彙編看函式的呼叫棧幀

當傳引用的時候

傳值返回時,是將ret放在eax暫存器中

傳引用返回時,是取ret的位址放到eax暫存器中。

所以不要返回乙個臨時變數的引用,這會導致,出現野指標的現象,記憶體洩漏。

那我們該如何判斷到底是返回值還是返回引用呢?

如果乙個物件出了作用域還存在,那麼就返回乙個引用,如果乙個物件出了作用域就不存在了,那就返回引用。

指標和引用,const 指標和const 引用

指標和引用是在使用中經常弄混淆的兩個概念。引用 reference 為物件起了另外乙個名字,用符號 表示。name,例如 int i 1024 int ref i 一般在初始化變數時,初始值會被拷貝到新建立的物件中,然而定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引...

指標和引用

一 先看一段 include using namespace std void freeptr1 int p1 void freeptr2 int p2 void main 思考 在 freeptr1 和freeptr2 的比較中,你能發現它們的不同點嗎?二 對 進行解釋 include using...

指標和引用

指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但...