您好,登錄后才能下訂單哦!
指針函數是指帶指針的函數,即本質是一個函數。函數返回類型是某一類型的指針,即地址值。函數返回值必須用同類型的指針變量來接受,也就是說,指針函數一定有返回值。而且,在主調函數中,函數返回值必須賦給同類型的指針變量。
形式: 類型標識符 *函數名(參數表)
int *f(x,y)
例如:
float *fun();
float *p;
p=fun(a);
注意函數指針與指針函數的區別,千萬不要混淆。最簡單的辨別方式就是看函數名前面的指針*號有沒有被括號包含,如果被括號包含就是函數指針,反之就是指針函數。
指針函數:
當一個函數聲明其返回值為一個指針時,實際上就是返回一個地址給調用函數,以用于需要指針或地址的表達式中。
函數指針指向函數的指針變量,即本質是一個指針變量。
例如:
int (*f)(int x);
f=func();
指向函數的指針包含了函數的地址,可以通過它來調用函數。聲明格式是:
類型說明符 (*函數名)(參數)
指針名和指針運算符外面的括號改變了默認的運算符優先級,如果沒有圓括號,就變成一個返回×××指針的函數的原型聲明。
例如:
void (*fptr)();
把函數的地址賦值給函數指針,可以采用下面兩種形式:
fptr=&function;
fprt=function;
取地址運算符是不必須的,因為單單一個函數標識符就表示了它的地址,如果是函數調用,還必須包含一個圓括號括起來的參數表。
函數指針和指針函數最主要的區別就是一個是指針變量,一個是函數,我們必須要正確使用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。