最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何通過函數(shù)指針調(diào)用函數(shù)(實現(xiàn)代碼)

 更新時間:2013年09月02日 10:41:52   作者:  
指針可以不但可以指向一個整形,浮點型,字符型,字符串型的變量,也可以指向相應的數(shù)組,而且還可以指向一個函數(shù)

說明:
指針可以不但可以指向一個整形,浮點型,字符型,字符串型的變量,也可以指向相應的數(shù)組,而且還可以指向一個函數(shù)。

一個函數(shù)在編譯的時候會被分配給一個入口地址。這個函數(shù)入口地址稱為函數(shù)的指針??梢杂靡粋€指針變量指向函數(shù),然后通過該指針變量調(diào)用此函數(shù)。

定義指向函數(shù)的指針變量的方法是:

復制代碼 代碼如下:

int (*p) (int ,int );

int【指針變量p指向的函數(shù)的類型】 (*p)【p是指向函數(shù)的指針變量】 ( int,int )【p所指向的形參類型】;

與函數(shù)的原型進行比較

復制代碼 代碼如下:

int max  (int, int );

int【函數(shù)的類型】 max【函數(shù)名】 ( int,int )【函數(shù)的形參類型】;

一個例子:
一般方法的代碼:

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int max(int x,int y);
 int a,b,c,m;
 cout<<"Please input three integers:"<<endl;
 cin>>a>>b>>c;
 m=max(max(a,b),c);
 cout<<"Max="<<m<<endl;
 return 0; 
}
int max(int x,int y){
 int z;
 if(x>y){
  z=x;
 } else{
  z=y;
 }
 return z;
}

然后,我們定義一個指針變量,指向max函數(shù),然后通過該指針變量調(diào)用函數(shù)。
通過(*p)來調(diào)用函數(shù)
復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int max(int x,int y);
 int (*p) (int x,int y);
 p=max;
 int a,b,c,m;
 cout<<"Please input three integers:"<<endl;
 cin>>a>>b>>c;
 m=(*p)((*p)(a,b),c);
 cout<<"Max="<<m<<endl;
 return 0; 
}
int max(int x,int y){
 int z;
 if(x>y){
  z=x;
 } else{
  z=y;
 }
 return z;
}

可以通過指針p直接調(diào)用函數(shù)
復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int max(int x,int y);
 int (*p) (int x,int y);
 p=max;
 int a,b,c,m;
 cout<<"Please input three integers:"<<endl;
 cin>>a>>b>>c;
 m=p(p(a,b),c);
 cout<<"Max="<<m<<endl;
 return 0; 
}
int max(int x,int y){
 int z;
 if(x>y){
  z=x;
 } else{
  z=y;
 }
 return z;
}

用指向函數(shù)的指針作為函數(shù)的參數(shù)
函數(shù)指針變量最常見的用途之一是作為函數(shù)的參數(shù),將函數(shù)名傳遞給其他函數(shù)的形參。這樣那個就可以在調(diào)用一個函數(shù)的過程中,根據(jù)給定的不同的實參,調(diào)用不同的函數(shù)。

例如,利用該方法解決,兩個函數(shù)y1=(x+1)^1;   y2=(2x+3)^2   ;   y3=(x^2+1)^3

分析:編寫3個函數(shù)f1,f2,f3,用來求上面3個函數(shù)x+1,2x+3,x^2+1的值。

然后編寫一個通用函數(shù)Squar,他有兩個形參:a次方和指向函數(shù)、
程序代碼:

復制代碼 代碼如下:

#include<iostream>
#include<math.h>
using namespace std;
double fun1(double n){
 double r;
 r=n+1;
 return r;
}
double fun2(double n){
 double r;
 r=2*n+3;
 return r;
}
double fun3(double n){
 double r;
 r=(pow(n,2)+1);
 return r;
}
double Squar(int a, double x, double(*p)(double )){
 double r,z;
 z=(*p)(x);
 r=pow(z,a);
 return r;
}
int main(){
 double fun1(double n);
    double fun2(double n);
 double fun3(double n);
    double Squar(int a, double x, double(*p)(double ));
 double x;
    cout<<"Please input x:";
 cin>>x;
 cout<<"(x+1)^1=";
 cout<<Squar(1,x,fun1)<<endl;
 cout<<"(2x+3)^2=";
 cout<<Squar(2,x,fun2)<<endl;
 cout<<"(x^2+1)^3="; 
 cout<<Squar(3,x,fun3)<<endl; 
 cout<<endl;
 return 0;   
}

相關(guān)文章

  • 你真的懂C++中的namespace用法

    你真的懂C++中的namespace用法

    命名空間(namespace)為防止名字沖突提供了更加可控的機制,命名空間分割了全局命名空間,其中每個命名空間是一個作用域,今天通過本文給大家分享C++中namespace用法,感興趣的朋友一起看看吧
    2021-06-06
  • C++構(gòu)造函數(shù)的一些注意事項總結(jié)

    C++構(gòu)造函數(shù)的一些注意事項總結(jié)

    構(gòu)造函數(shù)是創(chuàng)建類對象,并且在創(chuàng)建完成前,對類進行初始化的特殊函數(shù),下面這篇文章主要給大家介紹了關(guān)于C++構(gòu)造函數(shù)的一些注意事項,需要的朋友可以參考下
    2021-11-11
  • C 語言結(jié)構(gòu)體的使用方法

    C 語言結(jié)構(gòu)體的使用方法

    這篇文章主要介紹了C 語言結(jié)構(gòu)體的使用,文章介紹了結(jié)構(gòu)體定義的多種類型,想具體了解的朋友請看下面文章的內(nèi)容
    2021-09-09
  • C++?Boost?MultiArray簡化使用多維數(shù)組庫

    C++?Boost?MultiArray簡化使用多維數(shù)組庫

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • 詳解C++中shared_ptr的使用教程

    詳解C++中shared_ptr的使用教程

    shared_ptr能夠記錄對象被引用的次數(shù),主要被用來管理動態(tài)創(chuàng)建的對象的銷毀,這里我們就來詳解C++中shared_ptr的使用教程,需要的朋友可以參考下
    2016-05-05
  • C++探索構(gòu)造函數(shù)私有化會產(chǎn)生什么結(jié)果

    C++探索構(gòu)造函數(shù)私有化會產(chǎn)生什么結(jié)果

    C++的構(gòu)造函數(shù)的作?:初始化類對象的數(shù)據(jù)成員。即類的對象被創(chuàng)建的時候,編譯系統(tǒng)對該對象分配內(nèi)存空間,并?動調(diào)?構(gòu)造函數(shù),完成類成員的初始化。構(gòu)造函數(shù)的特點:以類名作為函數(shù)名,?返回類型
    2022-05-05
  • C++中類的默認成員函數(shù)詳解

    C++中類的默認成員函數(shù)詳解

    大家好,本篇文章主要講的是C++中類的默認成員函數(shù)詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Qt實現(xiàn)制作簡單的計算器

    Qt實現(xiàn)制作簡單的計算器

    計算器是我們生活中很常見的東西,它可以由多種語言多種方式來實現(xiàn)。本文主要介紹的是利用Qt實現(xiàn)的簡易計算器的制作,文中的示例代碼講解詳細,需要的可以參考一下
    2022-12-12
  • 簡單談談C++中指針與引用的區(qū)別

    簡單談談C++中指針與引用的區(qū)別

    指針和引用在C++中很常用,但是對于它們之間的區(qū)別很多初學者都不是太熟悉,下面來談談他們2者之間的區(qū)別和用法
    2017-04-04
  • C++與QML進行數(shù)據(jù)交互的常見方法總結(jié)

    C++與QML進行數(shù)據(jù)交互的常見方法總結(jié)

    這篇文章主要為大家詳細介紹了C++與QML進行數(shù)據(jù)交互的常見方法,文中 的示例代碼講解詳細,具有一定的參考價值,有需要的小伙伴可以跟隨小編一起了解一下
    2023-10-10

最新評論

龙海市| 望谟县| 青岛市| 五台县| 江达县| 安阳市| 尉犁县| 溆浦县| 永修县| 呈贡县| 马关县| 四子王旗| 彝良县| 镇巴县| 成武县| 武安市| 临夏县| 金平| 忻州市| 太仓市| 七台河市| 都江堰市| 湘阴县| 华亭县| 嘉荫县| 巢湖市| 牙克石市| 宁化县| 高淳县| 来凤县| 泸西县| 高密市| 临潭县| 那坡县| 汕尾市| 逊克县| 抚顺市| 安新县| 乌拉特后旗| 平原县| 梁河县|