函数指针简单实例

2016-12-17 19:59:34来源:CSDN作者:guchuanhang人点击

第七城市

原以为指针都是指向变量的,现在突然出现一个函数指针,在此简单探究一下,希望能够对大家起到抛砖引玉的作用。


  • 定义一个基本函数,作为指向的对象
int addInt(int n, int m) {    return n+m;}
  • 定义一个函数指针“类”,接收两个int参数,返回int
    声明函数指针时,格式为:
    返回值 (*函数名称形参)(函数的参数列表))
typedef int (*FuctionPointer)(int,int);
  • 定义一个函数指针“变量”——相当于匿名类,接收两个int参数,返回int
int (*functionPtr)(int,int);
  • 指针函数作为函数参数
int add2to3(int(*functionPtr)(int, int)) {    return (*functionPtr)(2, 3);}
  • 函数指针指向addInt()
functionPtr = &addInt;
  • 代码实例
// fuction_pointer.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <string>int addInt(int n, int m) {    return n + m;}typedef int(*FunctionPointer)(int, int);/*这样就定义了一种指针类型*/int add2to3(int(*functionPtr)(int, int)) {    return (*functionPtr)(2, 3);}int main() {    FunctionPointer fp = &addInt;    int sum = fp(3, 2);    std::cout<<sum<< std::endl;    int sum2=add2to3(fp);    std::cout << sum2 << std::endl;    system("pause");    return 0;}

PS:Visual Studio中,如果将#include <iostream>放在头文件的前面,那么,系统就找不到cout了,好奇怪!

参考地址:http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work?answertab=votes#tab-top

第七城市

相关文章

    无相关信息

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台