1. 程式人生 > 其它 >指標函式與函式指標的用法與區別

指標函式與函式指標的用法與區別

一、區別
1、指標函式:指的就是返回值是指標的函式,本質就是個函式。
2、函式指標:指的是指向函式的指標變數,本質就是個指標。

二、用法
1、指標函式:int* func(int a,int b);
普通函式就是int func(int a,int b);,返回值是int,而指標函式就是返回值是指標的函式,即返回值是int*。

2、函式指標:int (*func)(int x,int y);
這裡定義了一個函式指標,只不過這個指標的格式有點特殊,正常定義的指標是把指標變數放到最後的,即int* p ;,p是指標變數,但是函式指標是把指標變數放到了中間,即func是指標變數,而且這是一個指向函式的指標變數,而具體指向哪個函式是自己定的。
下面這個例子我定義了一個函式指標指向了int add(int a,int b)與int sub(int a,int b)這兩個函式。
舉個例子:

#include <stdio.h>

int add(int a,int b)
{
return a+b;
}

int sub(int a,int b)
{
return a-b;
}

//函式指標
int (*func)(int a,int b);

int main()
{
func = &add;
printf("add:%d\n",(*func)(10,5));
func = &sub;
printf("sub:%d\n",(*func)(10,5));

return 0;
}

執行結果:

add:15
sub:5
————————————————
版權宣告:本文為CSDN博主「程式設計師小明丶」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/weixin_45372436/article/details/100899315