C語言之辨別指標函式與函式指標

2021-10-04 15:12:57 字數 1631 閱讀 6093

三.函式指標

四.總結

在c語言中,有時候我們對基本的概念很容混淆分不清楚,今天來區分一下函式指標,和指標函式,我是這樣區分的,看誰在後面本質就是什麼

指標函式就是定義乙個函式其返回值型別為乙個指標,如何來定義乙個指標函式

宣告格式:型別說明符 * 函式名 (引數)

int

*function()

;int

*function()

;int

*function()

;

我這裡返回值的型別以整形int為例,這三種寫法都是可以的,*號的位置無所謂,個人感覺第一種好理解一些

#include

int*

fun(

)int

main()

*p =

10;

注意

int a = 10前面加static來修飾的目的是,因為函式呼叫的時候申請棧區的一段位址空間,不加static等呼叫結束,其他程式就有可能占用這片位址空間,會改變其裡面的內容(當然我沒加static我用vscode 執行**直接報錯)

函式指標的本質就是指標我們可以理解為,它就是乙個指向函式的指標

宣告格式:型別說明符 (*函式名) (引數)

int

(* function)()

;

function =

&add;

//add為另一函式的函式名

function = add;

這兩種寫法都可以,因為函式名就可以標識它的位址

呼叫函式指標的方式也有兩種:

x =(*

function()

);x =function()

;

#include

intadd

(int x,

int y)

intsub

(int x,

int y)

//定義乙個函式指標

int(

* function)

(int a,

int b)

;int

main()

5

1

函式指標和指標函式在記憶發面我是這樣記憶的

用括號將*括起來,說明指標的優先順序高,它就是函式指標

沒有括號的 函式的優先順序大於指標,它就是指標函式

定義不同

寫法不同

int

(* function)()

;//函式指標

int*

function()

;//指標函式

大家可以根據上面的例子來好好理解一下

C語言之辨別指標陣列與陣列指標

我們先來說一下指標陣列,顧名思義,這是乙個存放指標型別的陣列 從定義上來看 int p 3 沒有括號括起來它還是陣列這裡我還是寫乙個程式來理解一下 include intmain for int i 0 i 3 i return0 程式執行的結果 1 23指向指標的陣列 又稱行指標 如何定義 int...

c語言函式指標與指標函式

include include include using namespace std 1 c語言函式指標 解釋 這是一種很特殊的指標,它的指向是乙個函式的入口 作用 該指標可以接受乙個函式的位址,代表這個函式執行函式的操作 函式指標舉例 下面是乙個函式指標pfunc,它只能指向返回值為float,...

C語言函式指標與指標函式

在大家剛開始學習c語言的時候,總是分不清函式指標和指標函式,就算是知道了它們之間的區別,也不了解它們的使用場景,我寫此部落格幫大家縷一縷,也幫我自己縷一縷 1 函式指標與指標函式的概念以及區別 指標函式 從名字上可以看出,首先它是乙個函式,指標指的是返回值為指標 函式指標 從名字上可以看出,首先他是...