C 變數的引用

2021-06-26 00:11:41 字數 3270 閱讀 3538

有預設引數的函式

float area(float r=6.5);

area()                              //相當於area(6.5);

area(7.5)                         //形參得到的值是7.5,而不是6.5。

這樣做可以簡化程式,提高執行效率。

例如:float volume(float h,float r=12.5);

volume (45.6)                       //程式相當於volume(45.6,12.5);

volume(34.2,10.4) //程式相當於h=34.2,r=10.4;

注意:實參與形參的結合是從左到右進行的。因此制定預設值的引數必須放在形參表列中的最右端。

例如:

void f1(float a,int b=0,int c,char d='a')//這是不正確的

void f2(float a,int c,int b=0,char d='a')//這才是正確的

如果要呼叫上面的f2函式,可以採取下面的形式:

f2(3.5,5,3,x)                     //形參的值全部從實參中得到

f2(3.5,5,3)                        //最後乙個形參的值取預設值'a';

f2(3.5,5)                           //最後2個形參的值取預設值,b=0,d='a';

在使用帶有預設引數的函式時有兩點需要注意:

1.如果函式的定義在函式呼叫之前,則應在函式定義中給出預設值。

2.乙個函式不能即作為函式過載,又作為有預設引數的函式。

變數的引用。

引用就是別名。

&是「引用宣告符」。

例如:int a; int &b=a//宣告b是乙個整型變數的引用變數,它被初始化為a。

例如:int a1,a2;

int &b=a1;                          //使b成為變數a1的引用。

int &b=a2;                          //又企圖使變數b成為變數a2的引用是不行的。

引用的簡單應用:

#include

using namespace std;

int main()

int main()

int main()

{ int i=3,j=5;

swap(i,j);

cout<

這兩個程式看著差別不大,而且都能出現正確結果。但是在以後的學習中你會發現,指標容易出錯,而且不容易除錯,需要使用運算子「*

」(有時還會使用「

->

」運算子)去訪問有關變數,比較麻煩。

對引用的進一步說明:

1.不能建立void

型別的引用,如:

void &a=9;

//錯誤

因為任何實際存在的變數中都是屬於非void

型別的,

void

的含義是無型別或者空型別,

void

只是在語法上相當於乙個型別而已。

2.不能建議引用的陣列,如:

char c[6]=「

hello

」;

char &rc[6]=c;    //錯誤

因為陣列名c

只代表陣列首元素的位址,本身並不是乙個占有儲存空間的變數。

3.可以將變數的引用的位址賦給乙個指標,此時指標指向的是原來的變數。

int a=3;

int &b=a;

int *p=&b;

相當於p

指向變數

a,作用相當於:

int *p=&a

但是不能寫成: int &*p=&a

4.可以建立指標變數的引用,

如:

int i=5;

int  *p=&i;

int *&pt=p;

如果輸出*pt

的值,就是

*p的值

5;

5.可以用const 

對引用加以限定,不允許改變該引用的值。如:

int i=5;

const int&a=i;

a=3;

//企圖改變引用

a的值,錯誤

但是它並不阻止改變引用所代表的變數的值,如:

i=3;

//合法

6.可以用常量或表示式對引用進行初始化,但此時必須用const

宣告。如:

int =5;

const &a=i+3;

//合法

用這種方法不僅可以用表示式對引用進行初始化,還可以用不同型別的變數對之初始化。如:

double d=3.1415926;

const int&a=d;

//不會發生編譯錯誤,但是輸出

a的值是

3。

如果不加const 

則會發生編譯錯誤。

double d=3.1415926;

int&a=d;

//錯誤

C 變數的引用 使用變數的引用

c 可以對乙個資料可以使用引用,引用是c 對c語言的乙個重要擴充,引用是一種新的變數型別,它的作用是為乙個變數起乙個別名。比如要給變數temp起個別名change int temp 定義整型變數temp int change temp 宣告change是temp的引用上述 宣告了change是tem...

C 變數的引用

int a int b a 1.宣告變數b只是乙個引用,不需要另外的開闢記憶體單元存放b的值,b與a佔記憶體中的同乙個儲存單元,具有相同的位址。2.必須向定義乙個變數,後宣告對該變數的引用。對引用只有宣告,沒有定義。3.在宣告乙個引用的時候必須同時進行初始化,即宣告它代表的是哪乙個變數。4.在宣告乙...

C 變數的引用

變數的引用 就是給變數起乙個別的名字,兩個變數的位址是相同的。資料型別 別名 原名 int a 10 int b a a 和 b 都是 10 b 20 a 和 b 都是 20引用必須初始化 int c 錯誤 int c a 正確初始化後不能再改變 int c a c b 這句話就成了賦值操作不要引用...