中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

c++中函數指針的介紹

發布時間:2021-09-13 11:24:55 來源:億速云 閱讀:173 作者:chen 欄目:編程語言

這篇文章主要講解了“c++中函數指針的介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“c++中函數指針的介紹”吧!

指向函數的指針:

       一個函數在編譯時被分配一個入口地址,這個函數的入口地址被稱為函數的指針。

     與數組名代表數組首元素地址類型,函數名代表該函數的入口地址。

     定義形式如下:

    數據類型 (*指針變量名)(函數參數列表)

   注意:

1.int (*p)(int ,int ) 表示定義一個指向函數的指針變量p,它不是固定指向哪一個函數,而只是表示定義了這樣一個類型的變量,它是專門來存放函數的入口地址的,在程序中把哪一個函數(該函數的值是整型的,且有兩個整型參數)的地址賦給它,它就指向哪一個函數。在一個程序中,一個指針變量可以先后指向同類型的不同函數。

2.給函數指針變量賦值時,只需要給出函數名,不需要給出參數

如p=max;

3.用函數指針調用函數時,只需要將(*p)代替函數名即可,在(*p)之后的括號中根據需要寫上實參。

如:c=(*p)(a,b)

4.對函數指針變量進行p+n,p++,p--等運算是無意義的

代碼例子:

// CppTest.cpp : 定義控制臺應用程序的入口點。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

int max(int x,int y);
int min(int x,int y);
int sub(int x,int y);
int call(int x,int y,int (*p)(int x,int y));

int _tmain(int argc, _TCHAR* argv[])
{
	cout<<"max:"<<call(5,10,max)<<endl;
	cout<<"min:"<<call(5,10,min)<<endl;
	cout<<"sub:"<<call(5,10,sub)<<endl;

	//cout<<"----------------------------"<<endl;

	//int (*p)(int ,int);
	//p=max;
	//cout<<"max:"<<(*p)(5,10)<<endl;
	//p=min;
	//cout<<"min:"<<(*p)(5,10)<<endl;
	//p=sub;
	//cout<<"sub:"<<(*p)(5,10)<<endl;

	return 0;
}

int max(int x, int y)
{
	if (x>y) 
	{
		return x;
	}
	return y;
}

int min(int x, int y)
{
	if (x>y) 
	{
		return y;
	}
	return x;
}

int sub(int x, int y)
{
	return x+y;
}


int call(int x,int y,int (*p)(int x,int y))
{
	return (*p)(x,y);
}

打印結果如下:


c++中函數指針的介紹

感謝各位的閱讀,以上就是“c++中函數指針的介紹”的內容了,經過本文的學習后,相信大家對c++中函數指針的介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

c++
AI

繁峙县| 修武县| 类乌齐县| 蒲城县| 辰溪县| 旬邑县| 商南县| 子长县| 亳州市| 宣化县| 灵山县| 丰镇市| 疏附县| 花垣县| 托克逊县| 响水县| 贺州市| 锡林浩特市| 曲松县| 东乡县| 鹰潭市| 龙井市| 咸宁市| 呈贡县| 罗田县| 邵阳县| 平湖市| 杭州市| 体育| 德钦县| 上犹县| 东山县| 车险| 宜都市| 临漳县| 永仁县| 北安市| 五华县| 隆尧县| 恩施市| 兴文县|