程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++之五谷雜糧---2

c++之五谷雜糧---2

編輯:關於C++

c++之五谷雜糧---2。本站提示廣大學習愛好者:(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.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved