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

2021-06-21 19:01:12 字數 1265 閱讀 6786

1 預設引數

函式在宣告時可以預先定義預設的形參值。呼叫時若給出實參則用實參初始化形參,如果沒有給出實參則採用預先定義的預設形參值。假設有乙個名為left()的函式,它將字串和n作為引數,並返回該字串的前n個字元。更準確地說,該函式返回乙個指標,該指標指向由原始字串被選中的部分組成的字串。例如,函式呼叫left("thery",3)將建立字串"the",並返回乙個指向該字串的指標。現在假設第二個引數的預設值為1,則函式呼叫left("thery",3),3將覆蓋預設值。但是呼叫left("thery")不會出錯,它認為第二個引數為1,並返回指向字串"t"的指標。

left的原型如下:

char * left(const char * str,int n=1);

注意:(1) 對於帶引數列表的函式,必須從右向左新增預設值。也就是說,要為某個引數設定預設值,則必須為它右邊的所有引數提供預設值。

int harpo(int n,int m=4,int j=5);//可以

int harpe(int k=1,int m=2,int n=3);//可以

int harpa(int n,int m=6,int j);//不可以,右邊j沒賦值

(2)實參按從左到右的順序依次被賦給相應的形參,而不能跳過任何引數。

beeps=harpo(3, ,8);//不行,中間的m沒有賦值

beeps=harpo(2);//可以,預設harpo(2,4,5)

beeps=harpo(1,8);//可以,預設harpo(1,8,5)

下面來舉個預設引數的例子:

#includeconst int arsize=80;

char * left(const char * str ,int n=1);

int main()

{ using namespace std;

char sample[arsize];

cout<

cin.get(sample,arsize);

char *ps=left(sample,4);

cout<

程式的輸出為:

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

1.引用變數 引用是已定義的變數的別名 另乙個名稱 如 有一變數x,而y作為變數x的引用,則可以交替使用x和y來表示該變數。就像有兩個單詞表示同乙個意思。int cats int tomcats cats 其中,不是位址運算子,而是型別識別符號的一部分。上述宣告允許將cats與tomcats互換 它...

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

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

實驗二 引用與函式

1.熟悉引用的概念,掌握引用的定義方法,學會引用在c 程式中的應用。2.掌握函式的定義和呼叫方法。3.練習過載函式的使用。1.除錯下列程式,寫出輸出結果,並解釋輸出結果。1 include using namespace std int main double max1 double x,doubl...