日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一篇带你了解函数指针

發布時間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一篇带你了解函数指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數指針

***首先要明確函數名就是一個地址***
  • 定義
    函數指針變量的定義依賴于該變量要指向的函數定義。
    一般形式為:
    *返回值類型 (變量名)(參數列表)
    (這里的小括號不能缺,缺的話就變成了返回值為 指針的函數了)
    例子:
  • //被指向的函數:int add(int x,int y);//函數指向上面的函數:int (* addfuncptr)(int x,int y);

    2.初始化函數指針
    有兩種方法:
    a.使用”取址“ 操作符。
    b.使用隱含賦值。
    例子:

    #include<stdio.h>void fun1(int n) {printf("fun1\n"); }int * fun2(int x,int y)//只是為了說明 {int *z;z=NULL;printf("fun2\n");return z; }int main() {int *t;int (*pfun1)(int );//函數指針變量指向函數 ”fun1"int *(int pfun2)(int ,int);//函數指針變量指向函數 “fun2"pfun2=&fun2;//第一種方法pfun1=fun1;//第二種方法return 0; }

    3.調用指針函數
    也是有兩種方式:
    a.隱式調用。
    b.顯式調用。

    例子:

    #include<stdio.h>void fun1(int n) {printf("fun1\n"); }int * fun2(int x,int y)//只是為了說明 {int *z;z=NULL;printf("fun2\n");return z; }int main() {int *t;int (*pfun1)(int );//函數指針變量指向函數 ”fun1"int *(int pfun2)(int ,int);//函數指針變量指向函數 “fun2"pfun2=&fun2;pfun1=fun1;t=pfun2(10,20);//隱式調用(*)pfun1(10);//顯式調用return 0; }

    例子:

    #include<iostream> using namespace std; //template <typename T=int> int n=0;void fn1() {int n = 0;n++; }void fn2() {n++;//n<int>++; }void ans(int x) {void (*ptr)();//函數指針的聲明if (x == 0){ptr = fn1;//對指針賦值//或 ptr=&fn1;ptr();//調用}else if (x == 1){ptr = fn2;ptr();}else if (x == 2)cout << n << endl; }int main() {int t;while (cin >> t){n = 0;while (t--){int x;cin >> x;ans(x);}}return 0; }

    希望對大家有幫助!!!

    總結

    以上是生活随笔為你收集整理的一篇带你了解函数指针的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。