指標和函式:
函式也是有位址的,稱為函式的入口位址,即為函式的指標。
函式的指標和指向函式的指標變數:
指標變數=函式名
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 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...