1.函式指標
函式指標就是函式的指標;它是乙個指標,指向乙個函式。
看**如下:
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) fun1是乙個指標變數,它指向乙個函式。這個函式有兩個指標型別的引數,函式的返回值也是乙個指標。
#include //calculate用於計算積分。一共三個引數。第乙個為函式指標func,指向待積分函式。二三引數為積分上下限
double calculate(double(*func)(double x), double a, double b)
return sum;
}
double func_1(double x)
double func_2(double x)
void main()
2.函式指標陣列
函式指標陣列是乙個其元素是函式指標的陣列。也就是說,此資料結構是乙個陣列,且其元素是乙個指向函式入口位址的指標。
首先說明是乙個陣列:陣列名
其次,要說明其元素的資料型別指標:*陣列名.
再次,要明確這每乙個陣列元素是指向函式入口位址的指標:函式返回值型別(*陣列名)().請注意,因為圓括號和陣列說明符的優先順序是等同的,如果不用圓括號把指標陣列說明表示式擴起來,根據圓括號和方括號的結合方向,那麼 *陣列名() 說明的是元素返回值型別為指標的函式陣列。
例如:
void (*funcpointerarray[3])(double x);//函式指標陣列
void (*funcpointer)(double x);//函式指標
如何使用:
void f1(double x){}
void f2(double x){}
void f3(double x){}
來三個具體的函式,f1,f2,f3
void (*funcpointerarray[3])(double x);
funcpointerarray[0]=f1;
funcpointerarray[1]=f2;
funcpointerarray[2]=f3;
funcpointerarray[0](「2.333333」);
funcpointerarray[1](「6.666666」);
具體應用:#include void additem(char *name)
void deleteitem(char *name)
void finditem(char *name)
void updateitem(char *name)
void main()
3.線性表
#include int add(int a, int b)
int sub(int a, int b)
int mul(int a, int b)
int div(int a, int b)
int main()
; //轉移
表while (input)
else
printf( "輸入有誤\n" );
printf( "ret = %d\n", ret);
}return 0;
}
指標相關內容
1.指標是變數,佔4位元組,存放的是位址 2.指標型別與零值比較 if n null 或者if n null 3.野指標 int p 空指標 int p null 避免野指標 以char型別為例 char p char mallloc sizeof char 10 要包含標頭檔案 include 使...
ORACLE相關內容
1 em,dbca,netca,netmgr出現亂碼方案 cd oracle home jre lib mv font.properties font.properties.bak mv font.properties.zh font.properties em,dbca,netca,netmgr詳...
JVM相關內容
本地 native code 每個因素對記憶體占用的影響又會隨著應用程式 執行環境和系統平台的不同而變化,那怎樣計算總的記憶體佔用量?是的,想得到乙個準確的數字不是那麼容易,因為 你很難控制本地 native 部分。你能控制的部分只有堆大小 xmx,類占用的記憶體 xx maxpermsize,還有...