函式探幽(1) 引用(1)

2021-08-10 07:15:57 字數 1478 閱讀 4612

1.引用變數

引用是已定義的變數的別名(另乙個名稱)。如:有一變數x,而y作為變數x的引用,則可以交替使用x和y來表示該變數。就像有兩個單詞表示同乙個意思。

int cats;

int & tomcats =cats;

其中,&不是位址運算子,而是型別識別符號的一部分。上述宣告允許將cats與tomcats互換——它們指向相同的值和記憶體單元。

1.1.2.引用變數的使用

#include

int main()

下面是上面的程式的輸出:

cats = 100, tomcats = 100

cats = 101, tomcats = 101

cats address = 006ffa38

, tomcats addresss = 006ffa38

請按任意鍵繼續…

從中可知,cats和tomcats的值和位址都相同,無論兩個中的哪乙個進行相應操作,另乙個都會受到影響。

1.1.3.與指標的區別

引用看上去很像偽裝的指標。實際上,兩者還是同中有異的。

差別之一:

必須在宣告引用時將其初始化,而不能像指標那樣,先宣告,再賦值:

int cat;

int & tomcat;

tomcat = cat; // 你不能這麼做

差別之二:

引用一旦與某個變數關聯起來,就將一致效忠於它,也就是說:

int & tomcat = cat;

實際上是下述**的偽裝表示:

int * const p =&cats;

引用 tomcat 扮演的角色與表示式*p相同

若試圖改變tomcat 的指向,將發生:

#include

int main()

結果是:

cats = 100, tomcats = 100

cats address = 008ff990, tomcats addresss = 008ff990

rats = 50, cats = 50, tomcats = 50

rats address = 008ff978, tomcats address = 008ff990

請按任意鍵繼續…

最初,tomcats引用的是cats,隨後試圖將tomcats作為rats的引用,看似可以,實質tomcats的位址並未發生變化,其實就是

cats =rats;    //將rats變數的值賦給cats變數

函式探幽(3) 引用(3)

3.1.將引用用於結構 引用非常適合用於結構和類,而引入引用的目的也是為了用於這些型別。有如下結構定義 struct free throws 則可以這樣編寫函式原型 void set pc free throws ft 如果不希望函式修改傳入的機構,可使用const void display con...

函式探幽(二) 引用變數,預設引數

1 預設引數 函式在宣告時可以預先定義預設的形參值。呼叫時若給出實參則用實參初始化形參,如果沒有給出實參則採用預先定義的預設形參值。假設有乙個名為left 的函式,它將字串和n作為引數,並返回該字串的前n個字元。更準確地說,該函式返回乙個指標,該指標指向由原始字串被選中的部分組成的字串。例如,函式呼...

C 筆記1引用

include 標準命名空間 包含很多標準定義 using namespace std const double pi 3.14 圓class mycircle 獲取圓的面積 double gets void main 引用 void main 指標交換值 void swap1 int a,int ...