三.函式指標
四.總結
在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 函式指標與指標函式的概念以及區別 指標函式 從名字上可以看出,首先它是乙個函式,指標指的是返回值為指標 函式指標 從名字上可以看出,首先他是...