C 中 指標和引用

2021-08-20 05:30:30 字數 789 閱讀 9612

相信很多c++初學者都搞不清指標和引用是個什麼玩意,這裡我也不寫其定義。主要解釋「&」和「*」的作用。相信看完以後一定會有收穫的。

首先,看起幾個常見的例子:

int i =520; 

int &r = i; //

int *p;

p = &i;

*p = i;

int &r2 = *p

以上是一些c++中常見的寫法. 其中「&」和「*」既能作為表示式的運算子,也能作為申明的一部分,符號的上下文決定了符號的意思。

int i =520; 

int &r = i; // 引用, r引用了i的值

int *p; //指標, 申請了乙個指標p

p = &i; //取位址符 p儲存了i的位址

*p = i; //解引用符

int &r2 = *p // &是引用, *是解引用符, r2引用了相當於i的值。

所以分兩種情況,當「&」和「*」緊隨型別名出現時,分別代表引用和指標。 作為表示式的運算子時,分別代表取位址符和解引用符。這樣即使較為複雜的情況,我們都能分析清楚了。

例子:

int a =520;

int p = &i;

*p = *p * *p

這段**首先定義了乙個int型的變數i,並賦初值42,隨後定義了乙個int型指標,初始值為i的位址,*p在表示式中,指的就是解操作符,而中間的*是乘的意思,所以作用就是將i改變為42*42。

C 中 (指標引用)和 (指標)的區別

很久之前學的c 了,複習一下,指標是乙個存放位址的變數,而指標引用指的是這個變數的引用,眾所周知c 中如果引數不是引用的話會呼叫引數物件的拷貝建構函式,所以如果有需求想改變指標所指的物件 換句話說,就是要改變指標裡面存的位址 就要使用指標引用,在網上看到大佬的 簡單明瞭,如下 include usi...

C 中指標引用和指標的區別

指標 是位址 即記憶體單元的編號 指標變數 是乙個存放位址的變數 指標引用 指的是這個指標變數的引用 眾所周知c 中如果引數不是引用的話會呼叫引數物件的 拷貝建構函式 重新開闢一塊一模一樣的記憶體空間 所以如想改變指標變數裡面存的位址,就要使用指標引用 讀 前請先搞懂 二級指標 指標的指標 指向指標...

C 中指標和引用的區別

引用和指標 相同點 1.都是位址的概念 指標指向一塊記憶體,它的內容是所指記憶體的位址 引用是某塊記憶體的別名。區別 1.指標是乙個實體,而引用僅是個別名 2.引用使用時無需解引用 指標需要解引用 3.引用只能在定義時被初始化一次,之後不可變 指標可變 引用 從一而終 4.引用沒有 const,指標...