函式指標:
函式名本身代表著函式的位址,因此給函數指標賦值使可以不用加&符號「加也可以!!!」。
void
func
(int);
//定義乙個函式
void
(*pf)(
int);
//定義乙個函式指標
pf=func;
//給函式指標賦值
int *f(x,y);
其中x,y是形式引數,f是函式名,呼叫後返回乙個指向整型資料的位址指標。
f(x,y)是函式,其返回值是指標。
指標函式,簡單的來說,就是乙個返回指標的函式,其本質是乙個函式,而該函式的返回值是乙個指標。
宣告格式為:型別識別符號 * 函式名(參數列)
int *fun(int x,int y);
int * fun(int x,int y);
int* fun(int x,int y);
函式指標,其本質是乙個指標變數,該指標指向某個函式。總結來說,函式指標就是指向函式的指標。
宣告格式:型別說明符 (*函式指標名) (引數)
int(*fun)(int x,int y);
fun = &function;
fun = function; 取位址運算子&不是必需的,因為乙個函式識別符號就表示了它的位址,如果是函式呼叫,還必須包含乙個圓括號括起來的參數列。
x = (*fun)(); 建議使用第一種,因為可以清楚的指明這是通過指標的方式來呼叫函式。
x = fun();
指標函式本質是乙個函式,其返回值為指標。
函式指標本質是乙個指標,其指向乙個函式。
a) char * (*fun1)(char * p1,char * p2);
b)char * *fun2(char * p1,char * p2);
c)char *fun3(char * p1,char * p2);
...關於c,fun3是函式名,p1,p2是引數,其型別為char *型,函式的返回值為char *型別。
...關於b, 與c 表示式相比,唯一不同的就是函式的返回值型別為char**,是個二級指標。
...關於a, 返回指標 の 函式指標: int* function(int x,int y) ->->-> fun1 =function
C 函式指標與指標函式
c 要是不常用,相信過四天你的指標函式與函式指標的概念就該忘個精光。其實只要記住誰在後面誰就是哪個本質。先了解下指標陣列與陣列指標吧 陣列指標 就是指向陣列的指標,它表示的是乙個指標,它指向的是乙個陣列,它的重點是指標,如,int pa 8 宣告了乙個指標,該指標指向了乙個有8個int型元素的陣列 ...
C 指標函式與函式指標
指標預熱知識 1 指標就是位址 2 指標的型別應該與變數型別匹配 例如 int a 2 指標pa是int 型別,所以只能存放int型別變數a的位址 絕對不能存放char double.等型別變數的位址 int pa a include stdafx.h include using namespace...
c指標陣列與陣列指標與指標函式與函式指標筆記
include include typedef struct t ooxx t ooxx,pt ooxx 測試陣列指標 void test ooxx arrayp t ooxx p int num 測試指標陣列 void test ooxx parray t ooxx p,int num 測試函式指...