c++之五谷杂粮---2
生活随笔
收集整理的這篇文章主要介紹了
c++之五谷杂粮---2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2.1??我們通過調用運算符(call operator)來執行函數。調用運算符的形式是一對圓括號,它作用于一個表達式,該表達式是函數或者指向函數的指針;圓括號之內是用逗號隔開的實參列表,我們用實參初始化函數的形參。調用表達式的類型就是函數的返回類型。
1 1 #include<iostream> 2 2 using namespace std; 3 3 int fuc(int a, double b) 4 4 { 5 5 cout<<"a= "<<a<<" "<<"b= "<<b<<endl; 6 6 return 0; 7 7 } 8 8 int main(void) 9 9 { 10 10 int (*fuc_point)(int ,double);//int (*fuc_point)(int a ,double b); 參數名是可選的,其實編譯器根本不關心參數名,只在乎參數類型 11 11 fuc_point=fuc;//fuc_point=&fuc;這兩句等效 12 12 fuc(3,3.14);//3 3.14為實參 用該實參初始化形參a,b 調用表達式的類型fuc為int 故該函數的返回類型為int 13 13 fuc_point(3,3.14);//這三個都可以調用函數fuc 14 14 (*fuc_point)(3,3.14); 15 15 return 0; 16 16 }?
運行結果:
Analyze:
fuc_point=&fuc;表達式的&是可選的,因為函數名被使用時總是由編譯器把它轉換成函數指針,&只是顯示說明了編譯器講隱式執行的任務;fuc_point(3,3.14);編譯器需要的是一個函數指針,而fuc_point正是符合這樣要求的;
(*fuc_point)(3,3.14);先對指針進行解引用,它把函數指針轉換成一個函數名。這個轉換并不是真正需要的,因為編譯器在執行函數調用操作符之前又會把它轉換回去。
這三者都是合法且效果相同的。
2.2 如果局部變量沒有被顯示的初始化,它將執行值初始化,內置類型的靜態變量初始化為0.
總結
以上是生活随笔為你收集整理的c++之五谷杂粮---2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【java设计模式】之 代理(Proxy
- 下一篇: DataV 支持 token 验证啦!