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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C语言函数指针和指针函数的定义和调用

發布時間:2023/12/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言函数指针和指针函数的定义和调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數指針和指針函數的定義和調用

確實第一次聽到函數指針和指針函數的時候感覺特別的繞。而且昨天要寫函數指針的時候一下子想不起來,自己寫篇文章和大家分享一下也讓我增加印象。

指針函數

指針是函數的返回類型 int* Fun(void); int*是一個int類型的指針,作為函數的返回值 聲明格式:類型說明符* 函數名(參數) int* Fun1(int data1); 返回值類型一定要是個指針

函數指針

是代表函數入口地址的變量 函數本體: int Fun(int); 函數指針 in (*p)(int) = Fun; 聲明格式:類型說明符 (*函數名) (參數) int (*Fun1)(int);

注意:類型說明符和參數的類型數量是根據你要保存的函數的格式一樣的

p保存了Fun函數的入口地址 函數調用上 int a = 5; p(5)等價于Fun(5)

我先將函數Fun1的地址存入函數指針p中
然后分別調用Fun和p進行輸出,結果下圖這樣。
大家可以去試試。代碼我貼在下面

#include <iostream> #include <Windows.h>int Fun1(int data1) {static int i;i++;printf("第%d次:data1 = %d\n", i,data1);return data1; }void Fun_ALL(int (*p)(int), int a) {p(a); }int main() {int(*p)(int) = Fun1;Fun_ALL(Fun1, 3);Fun_ALL(p, 5);system("pause");return 0; }

用途:
有人會問函數指針還要多開一個變量,還要去保存,寫成這樣干啥哦,浪費空間和時間,其實不然,函數指針在某一個函數中需要調用同類型的函數時很有用的,你只需要把你自己的函數名稱傳入即可,不然的話就是要做標志位參數去判斷了,這樣不僅更浪費空間而且代碼會變得很冗余的。
拋磚引玉一下:
先上運行結果

基礎運算代碼(就是簡單的加減乘除)

//加法 int sum(int data1, int data2) {printf("sum: %d + %d = %d\n", data1, data2, data1 + data2);return data1 + data2; } //減法 int sub(int data1, int data2) {printf("sub: %d - %d = %d\n", data1, data2, data1 - data2);return data1 - data2; } //乘法 int mul(int data1, int data2) {printf("mul: %d * %d = %d\n", data1, data2, data1 * data2);return data1 * data2; } //除法 int division(int data1, int data2) {printf("div: %d / %d = %d\n", data1, data2, data1 / data2);return data1 / data2; }

運算整合代碼

int Fun( int (*p1)(int, int), //第一個運算int (*p2)(int, int), //第二個運算int (*p3)(int, int), //第三個運算int data1, int data2) {int res = 0;res = p3( p2( p1(data1, data2), data1), data1);printf("Res:%d\n", res);return res; }

main函數

int main() {Fun(division, sum, mul, 20, 4);system("pause");return 0; }

運行結果:

函數指針還有很多的用途啦,指針用的話,大神跑不了,哈哈哈哈哈。

總結

以上是生活随笔為你收集整理的C语言函数指针和指针函数的定义和调用的全部內容,希望文章能夠幫你解決所遇到的問題。

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