一篇带你了解函数指针
生活随笔
收集整理的這篇文章主要介紹了
一篇带你了解函数指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數指針
***首先要明確函數名就是一個地址***函數指針變量的定義依賴于該變量要指向的函數定義。
一般形式為:
*返回值類型 (變量名)(參數列表)
(這里的小括號不能缺,缺的話就變成了返回值為 指針的函數了)
例子:
2.初始化函數指針
有兩種方法:
a.使用”取址“ 操作符。
b.使用隱含賦值。
例子:
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; }希望對大家有幫助!!!
總結
以上是生活随笔為你收集整理的一篇带你了解函数指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二叉树(BST)之创建二叉搜索树
- 下一篇: 文件的四种读取方法