C函數指針 示例

函數指針是指向函數的指針變量,其指針指向函數內存的入口地址

函數指針有兩個用途:調用函數和做函數的參數

函數指針的聲明方法爲:返回值類型 ( * 指針變量名) ([形參列表]);

        例如:int fun(int x);        //聲明一個函數

                   int (*pf) (int x);         // 聲明一個函數指向指針     int爲聲明該函數指針爲返回值時整形的函數指針    

                                                   //pf是函數指針的指針名(注意括號)        (int x)  爲爲形參列表

                    pf=fun                    //將函數入口地址賦值給函數指針

函數指針做參數傳遞:int fun_pointer( int(*pf) (int a, int b), int a ,int b )

                 調用方式:fun_pointer(pf,i, j)

/*
**	開發環境:vs2017
**	作    者:mirco_mcu
*/


#include "stdafx.h"	

int (*pf) (int a, int b);//定義函數指針

int add(int a, int b)		//定義函數
{
	return a + b;
}

int fun_pointer( int(*pf) (int a, int b), int a ,int b )		//函數指針做參數,同時傳入函數指針所調用的參數
{
	return pf(a, b);
}

int main()
{
	int i=1, j=2;			//定義變量
	

	pf = add;				//將函數 add 入口地址賦值給函數指針
		
	printf("常規計算 : %d\n", i + j);			//常規調用
	printf("函數指針 : %d\n", pf(i, j));		//函數指針方式調用
	printf("函數指針做參數 : %d\n", fun_pointer(pf,i, j));		//函數指針方式調用

	while (true);

	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章