C言語の関数ポインタの違いや関数へのポインタの実用化

関数へのポインタ1

  関数へのポインタである関数へのポインタを返す、主ある関数、戻り値はポインタ  

  文の基本的な形:戻り値のデータ型  + + *  関数名  +  (変数タイプ1、...) ;

int型 *楽しい(int型int型);  
int型 *楽しい(int型int型);
int型 *楽しい(int型int型);

  これらの3つのステートメントがあり、より直感的な最初の戻り値はint型*のです。

する#include <stdio.hの>
 INT *ファン(INT * X)     // ポインタ渡さ   
{
     INT * X = TMP;       // ポインタTMP点Xの
    戻り TMP;        // リターンアドレスポインティングTMP 
}
 int型のmain()
{ 
    int型 = B 2 INT * P =&B;    // アドレスのP bで指さ 
    のprintf(" %のD "、*ファン(P)); // アドレスの出力の値は、Pによって指さ
    戻り 0 ; 
}

  出力:2

 

2.関数ポインタ

  関数ポインタは、  の関数へのポインタ 体であるポインタ をポイントする関数のアドレス

  文の基本的な形:戻り値のデータ型  +  (*関数名)  +  (変数の型1、...) ;

  注*とブレースとの間、又はため優先理由オペレータの関数名は、関数ポインタとなります

int型(*楽しい)(int型);
する#include <stdio.hの>
 INT追加(int型 X、INT Y)
{ 
    リターン X + Y; 
} 
int型(ファン*)(INTINT);             // 宣言関数ポインタ
INT メイン()
{ 
    ファン =&追加;                     // 楽しい追加機能の関数へのポインタ 
    のprintf(" %のD "、楽しい(35。 ));         
    のprintf(" %のD "、(*楽しい)(42 ));
     戻り 0; 
}

  输出结果:8 6
  上記の例では、関数ポインタの使用中fun(3,5)(*fun)(3,5)されています

 

  関数へのポインタへの関数のパラメータリストの関数ポインタと同じリストのパラメータ

  主な機能は、ポインタ関数ポインタと関数ポインタは関数へのポインタで返すことであることを忘れないでください
  それに基づいてのような関数ポインタへの関数ポインタと関数ポインタがあり
  、ポインタを関数宣言と関数名は*ブラケットに必要がない場合
  、ポインタ機能それが宣言されたとき*必要とし、括弧の中の関数名(理由の優先順位)

関数へのポインタの3.アプリケーション

 

 

 

関数ポインタの4.アプリケーション

おすすめ

転載: www.cnblogs.com/zhuangquan/p/12095812.html