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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

指针-函数指针数组

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

什么是函數指針數組?

之前有說過指針數組,里邊存放的是一群相同類型的指針,函數指針數組是它的自己,那群指針指向的是參數和返回類型相同的函數。

如何表示函數指針數組?

了解這個之前,要先了解一些符號的優先級,*<[]<()。現在我們先回顧一下函數指針是怎么來的

int test (int a,int* b){}int *p1; //定義了一個整型指針變量p1 int (*p)(int ,int*);//定義了一個函數指針變量p//先找名字 p //p先和*結合表示是一個指針 //再和()結合表示該指針指向函數 //再和,int int*結合表示函數有兩個類型的參數 //再和int 結合表示函數返回值是int類型

再來看看函數指針數組

int (*p[4])(int ,int*); //定義了一個數組,數組內應存放函數指針//先找名字,p //由于結合性的問題,p先和【】結合表示p是一個數組 //再和*結合表示存放的是指針 //再和()結合表示指針指向的是函數

函數指針數組的用處

函數指針數組就是相當于一個轉移的作用,看一段加減乘除的代碼

#include<stdio.h> #include<stdlib.h>//打印菜單void menu(void) {system("cls");printf("*******************\n");printf("**1.sum 2.sub***\n");printf("**3.mul 4.div***\n");printf("*****0.eixt********\n");printf("*******************\n"); }int sum(int x, int y) {return x + y; }int sub(int x, int y) {return x - y; }int mul(int x, int y) {return x * y; }int Div(int x, int y) {return x / y; } int main(void) {int (*parr[5])(int, int) = { 0,sum,sub,mul,Div };int input = 1;int x=0, y=0;do {menu();printf("%d\n", parr[input](x, y));printf("請輸入操作:\n");scanf_s("%d", &input);if (input >= 1 && input <= 4) {printf("請輸入兩個操作數:\n");scanf_s("%d%d", &x, &y);}else if (input == 0) {printf("游戲退出\n");break;}else {printf("選擇錯誤\n");}} while (input);return 0; }

回調函數

回調函數,就是把函數的地址作為參數傳入一個函數

回調函數就是先將某個函數的地址傳入其中,然后再被傳入函數中看情況調用它

void refun(int (*pr)(int,int)); //函數指針類型作為參數的refun函數

總結

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

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