函式的呼叫需要完成兩項工作:
一、實參初始化物件的形參
二、將控制權交給函式,主調函式中斷,被調函式執行。
函式的返回型別不能是陣列。
陣列不可以做函式返值的原因在於,函式的返值是賦值傳遞的,而陣列不可以進行簡單賦值。也就是函式的返回值是簡單的臨時變數方法,所以不支援是陣列。
當然,函式不能返回函式,雖然不知道為什麼,但是這樣做值沒有意義的。
應該盡可能使用引用傳遞從而避免拷貝。
再次**const
在傳遞引數的時候,引數的頂層const被忽略掉了。
因為使用乙個非常量給常量賦值總是可以的。即我們可以使用乙個非常量初始化乙個底層const,但是反過來不行。不能使用乙個底層const初始化乙個非常量。
#includeusing namespace std;
int main()
陣列形參:
陣列有兩個性質:不允許拷貝陣列,使用陣列的時候可能會轉化為指標。
所以我們使用乙個陣列的時候實際上使用的是陣列的的指標。
使用函式作為形參
#includeusing namespace std;
void print(int (&a)[10])
int main()
int main()
或者使用decltype
using namespace std;
int a[10];
using ok=decltype(&a);
ok tool1()
int main()
void f(short i)
int main()
//輸出如下
//int
//process returned 0 (0x0) execution time : 0.059 s
//press any key to continue.
算數型別轉換的級別都一樣,並沒有優先順序之分。
#includeusing namespace std;
void f(long i)
void f(float i)
int main()
C 函式 筆記
內聯函式只適用於小函式,使用內聯函式需要注意以下幾點 內聯函式中不能含有任何迴圈語句以及switch和goto語句 內聯函式的宣告必須出現在內聯函式第一次被呼叫之前 內聯函式中不能說明陣列 遞迴函式不能定義為內聯函式 函式過載 函式引數個數或型別不同,可以構成過載函式 生命期 是指乙個識別符號從被建...
C 函式筆記
在c 中,函式的形參列表中的形參是可以有預設值的。語法 返回值型別 函式名 引數 預設值 示例 int func int a,int b 10,int c 10 1.如果某個位置引數有預設值,那麼從這個位置往後,從左向右,必須都要有預設值 2.如果函式宣告有預設值,函式實現的時候就不能有預設引數 i...
c 函式筆記
相關聯函式 fileno 標頭檔案返回值 示例判斷檔案描述符是否為終端 輸出裝置控制代碼 返回終端名 路徑 ttyname int 把檔案流指標轉換成檔案描述符fileno file null 終端名 路徑 null 檔案描述符不是終端 include1 檔案描述符為終端 0 檔案描述符不是終端 i...