歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++函數參數小結

C++函數參數小結

日期:2017/3/1 10:01:41   编辑:Linux編程

一、函數形參–指針參數和數組參數的區別


作為函數形參的數組和指針可以互換
這種轉換僅限於函數形參的聲明
這是一種便利,傳遞時數組會蛻變為指針,事實上數組從來沒有傳入過函數。
例子:以下3個聲明是等價的
void putValues(int *);
void putValues(int[]);
void putValues(int[10]);
備注:數組長度不是參數類型的一部分。函數和編譯器都不知道傳統給它的數組的長度的大小。

傳入指定長度數組的一種簡便方法

將參數聲明為數組的引用,此時,數組長度成為形參和實參的一部分。例如:void putValues( int (&arr)[10])

二、默認參數值


默認參數值是一種在大多數情況下都適用的值。
函數聲明可為全部或者部分參數提供默認值。
函數調用的實參按位置解析,默認參數只能用來替換函數調用缺少的尾部實參。
一個參數只能在一個文件裡被指定一次默認實參。函數後續的聲明中可以指定其他默認參數。可以在函數聲明和定義處定義默認參數值。
默認參數可以用任意表達式指定。
例如:

---------------------ff1.h-----------------------------

intff(int a, int b,int c=0);

--------------------ff2.h------------------------------

#include “ff1.h”

intgetValue();

intff(int a, int b =getValue(), c);


--------------------ff2.cpp------------------------------

#include “ff2.h”

intff(int a=0, int b,int c)

{

}

Copyright © Linux教程網 All Rights Reserved