ポインタ関数と関数ポインタ--2つの簡単な例で説明します.
1146 ワード
2つの概念が混同されています.ポインタ関数と関数ポインタです.次に、2つの例で説明します.
-----------------------------------------------------------------------------------------------------------------------------------
スタート
------------------------------------------------------------------------------------------------------------------------------------
1、ポインタ関数
(1)基本概念
ポインタ関数:名前の通りポインタ付き関数、すなわち本質は関数ですが、この関数は対応するタイプのアドレスを返します.
(2)定義式
type *func (type , type)
例えば:int*max(int x,int y)
(3)例の詳細
まとめ:上の小さな例から、サブ関数は配列内の要素が存在するアドレス値を返し、このアドレスに格納されている数を出力することがわかります.
2、関数ポインタ
(1)基本概念
関数ポインタ:関数を指すポインタ変数、本質的にポインタ変数
(2)定義式
type (*func)(type , type )
例えば、int(*max)(int a,int b)
(3)例の詳細
まとめ:両者の主な違いは、1つは関数(ポインタ関数)、1つはポインタ変数(関数ポインタ)です.
-----------------------------------------------------------------------------------------------------------------------------------
スタート
------------------------------------------------------------------------------------------------------------------------------------
1、ポインタ関数
(1)基本概念
ポインタ関数:名前の通りポインタ付き関数、すなわち本質は関数ですが、この関数は対応するタイプのアドレスを返します.
(2)定義式
type *func (type , type)
例えば:int*max(int x,int y)
(3)例の詳細
#include
using namespace std;
int *GetNum(int x); //
void main(void)
{
cout<>num;
cout<
まとめ:上の小さな例から、サブ関数は配列内の要素が存在するアドレス値を返し、このアドレスに格納されている数を出力することがわかります.
2、関数ポインタ
(1)基本概念
関数ポインタ:関数を指すポインタ変数、本質的にポインタ変数
(2)定義式
type (*func)(type , type )
例えば、int(*max)(int a,int b)
(3)例の詳細
#include
using namespace std;
int max(int a, int b) {
return a>b?a:b;
}
void main(void)
{
cout<>a>>b;
int result=(*func)(a,b); //
cout<
まとめ:両者の主な違いは、1つは関数(ポインタ関数)、1つはポインタ変数(関数ポインタ)です.