91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

函數指針和回調函數

發布時間:2020-07-28 22:53:31 來源:網絡 閱讀:586 作者:伯爵213 欄目:編程語言

一、函數指針

    函數的目標碼有一個入口地址,這個入口地址就對應函數的指針。函數的指針能賦給一個指向特定函數類的指針變量,并能通過指向函數的指針變量調用它所指向的函數。

    定義指向函數的指針變量的一般形式為

        返回值類型 (*指針變量名)(形參列表)

        例如:

          int (*p)();//定義p是一個指向函數的指針變量,其函數返回值為int型。

    定義了指向函數的指針變量,就可向它賦某函數的入口地址。函數名本身就是函數入口地址常量,當一個指向函數的指針變量指向某個函數時,就可用它調用它所指的函數。一般形式的函數調用為

    函數名(實參表)

改用指向函數的指針變量調用該函數,寫為

    (*指針變量名)(實參表)

 例如:求兩個整數中小者的函數min(a,b )返回int型值,語句f=min;使指針變量f指向min函數,語句

   z=min(x,y);可寫成:z=(*f)(x,y);

二、回調函數

    回調函數就是一個通過函數指針調用的函數。如果把函數的指針作為參數傳遞給另一個函數時,當這個指針被用為調用它所指向的函數時,就說這個回調函數。回調函數可以象普通函數一樣被程序調用,但是只有它被當作參數傳遞給被調函數時才能稱作回調函數

        1、為什么要使用回調函數

     因為可以把調用者與被調用者分開,調用者不關心誰是被調用者,所有它需知道的,只是存在一個具有某種特定原型、某些限制條件的被調用函數

  如下程序:

     通過回掉函數來求取數組中的最大值, 

#include<iostream>
using namespace std;
int max(int arr[], int n);
void process(int*p, int n, int(*p1)(int arr[], int n));
void main()
{
	int a[4] = { 10, 8, 12, 9 };
	int n = 4;
	cout << "The Max=";
	process(a, n, max);
}
int max(int arr[], int n)
{
	int i;
	int max1 = arr[0];
	for (i = 0; i < n; i++)
	{
		if (max1 < arr[i])
		{
			max1 = arr[i];
		}
	}
	return (max1);
}
void process(int*p, int n, int(*p1)(int arr[], int n))
{
	int result;
	result = (*p1)(p, n);
	cout << result << endl;

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华蓥市| 巫山县| 达孜县| 长白| 邯郸县| 塔河县| 东宁县| 宽城| 仲巴县| 盐边县| 法库县| 望谟县| 华安县| 万山特区| 池州市| 读书| 南和县| 涟源市| 时尚| 吉林市| 萍乡市| 云浮市| 湄潭县| 临夏县| 板桥市| 凌海市| 黎城县| 阿拉善盟| 河南省| 亳州市| 建湖县| 胶州市| 朝阳县| 香河县| 洱源县| 汝州市| 普兰店市| 若羌县| 綦江县| 慈溪市| 积石山|