相信很多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,指標...