指標和函式

2021-08-15 07:37:32 字數 1573 閱讀 4479

指標和函式:

函式也是有位址的,稱為函式的入口位址,即為函式的指標。

函式的指標和指向函式的指標變數:

指標變數=函式名

tips:賦予指標變數的值只能是某個函式的函式名,而該函式只能是賦值前已經定義好的函式,

該函式返回值型別必須和定義該指標變數時的「資料型別」保持一致。

定義的指標變數可以先後指向不同的函式,只要型別一致。

型別說明符(*指標變數名)

用指標變數呼叫所指向的函式時,需要注意:

1.指標變數必須已經指向了某個函式。

2.資料型別可以是整型、實型、字元型甚至是結構型的資料型別。定義指標變數

據型別和定義函式時的資料型別必須一致。

3.指標變數名是使用者所選用的識別符號,表示指向函式的指標變數。

4.「*指十變數」必須加據號,因為運算待=的優先順序低於運算子().若號成證

的優先順序低於「()」,

所以,會是p先和( )結合,代表這是乙個函式。

函式的返回值是指向整型的指標。

在定義麗數指標之後,可以通過它間接呼叫所指向的函式。

同其他型別指標相似、首個函式名賦給函式指標,然後才可以通過函式指標間接呼叫這個函式。

乙個函式指部指向使用者自定義的函式,也可以指向由c 語言系統所提供的庫函式。

如:int funct(int,int); //定義乙個函式

int(*p)(int,int);   //定義乙個指向函式的指標變數

p=funct;          //把函式入口位址賦值給指標變數

指標與指向函式的應用:

#include

int sum(int x,int y)

int main()

執行結果:88

tips:

int (*p)(int,int);表示定義乙個int型別的指向函式的指標變數,並不是固定指向乙個函式的,而是可以用來只想具有int 函式名(int,int)形式所有函式。 p=sum;只用給出函式名,不用引數。不能寫成p=sum(int,int); or p=sum(a,b);

指向函式的指標作為函式引數:

把函式位址作為引數傳遞到其他函式,在呼叫過程中就可以使用實參函式。

指標陣列作為函式引數:

以前寫int main() 括號為空,表示main()函式無參函式。實際上可有。

如:int main(int argc,char *argv)

命令名 引數1 引數2 引數3....(引數名和命令列空格隔開)

tips:由命令列向引數中傳遞的引數都是以字串形式出現的,想獲得其他型別的引數。

如數字引數,必須在程式中進行相應的轉換。

返回指標值得函式:

如: int *fun()

說明,返回值是乙個指向整型變數的指標。

字串指標作為函式引數:

字串的表示形式:

char str[80]="need";

char *p=str;

printf("%s",str);

printf("%s",p);

printf("%s","need");   //輸出皆為need

char *p="need";

指標函式和函式指標

指標函式和函式指標 一 指標函式 當乙個函式宣告其返回值為乙個指標時,實際上就是返回乙個位址給呼叫函式,以用於需要指標或位址的表示式中。格式 型別說明符 函式名 引數 當然了,由於返回的是乙個位址,所以型別說明符一般都是int。例如 int getdate int aaa int,int 函式返回的...

函式指標和指標函式

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...

函式指標和指標函式

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...