指針函數

指針函數

帶指針的函數
指針函數,指針函數是指帶指針的函數,即本質是一個函數。[1]函數都有返回類型(如果不返回值,則為無值型),隻不過指針函數返回類型是某一類型的指針。事實上,每一個函數,即使它不帶有返回某種類型的指針,它本身都有一個入口地址,該地址相當于一個指針。學生學号從0号算起,函數find()被定義為指針函數,起形參pointer是指針指向包含4個元素的一維數組的指針變量。pt是一個指針變量,它指向浮點型變量。main()函數中調用find()函數,将score數組的首地址傳給pointer.函數指針有兩個用途:調用函數和做函數的參數.
    中文名:指針函數 外文名:Pointer function 别名: 性質:函數 領域:數學

基本内容

指針函數是指帶指針的函數,即本質是一個函數。

我們知道函數都有返回類型(如果不返回值,則為無值型),隻不過指針函數返回類型是某一類型的指針。其定義格式如下所示:

返回類型标識符*返回名稱(形式參數表)

{ 函數體}

返回類型可以是任何基本類型和複合類型。返回指針的函數的用途十分廣泛。事實上,每一個函數,即使它不帶有返回某種類型的指針,它本身都有一個入口地址,該地址相當于一個指針。比如函數返回一個整型值,實際上也相當于返回一個指針變量的值,不過這時的變量是函數本身而已,而整個函數相當于一個“變量”。例如下面一個返回指針函數的例子:

#include

float *find();

main()

static float score[]={{60,70,80,90},{56,89,34,45},{34,23,56,45}};

float *p;

int i,m;

printf("Enter the number to be found:");

scanf("%d",&m);

printf("the score of NO.%d are:n",m);

p=find(score,m);

for(i=0;i<4;i++)

printf("%5.2ft",*(p+i));

float *find(float(*pionter),int n)/*定義指針函數*/

float *pt;

pt=*(pionter+n);

return(pt);

學生學号從0号算起,函數find()被定義為指針函數,起形參pointer是指針指向包含4個元素的一維數組的指針變量。pointer+1指向score的第一行。*(pointer+1)指向第一行的第0個元素。pt是一個指針變量,它指向浮點型變量。main()函數中調用find()函數,将score數組的首地址傳給pointer.

【注意】

指針函數不同于函數指針, int (*f)(int a);或者char (*f1)(void);

函數指針聲明為指針,它與變量指針不同之處是,它不是指向變量,而是指向函數。

函數指針有兩個用途:調用函數和做函數的參數.

上一篇:面向對象思想

下一篇:二值化

相關詞條

相關搜索

其它詞條