1樓:風若遠去何人留
函式指標是指向函式的指標變數。 因而「函式指標」本身首先應是指標變數,只不過該指標變數指向函式。這正如用指標變數可指向整型變數、字元型、陣列一樣,這裡是指向函式。
函式指標有兩個用途:呼叫函式和做函式的引數。
函式指標的宣告方法為:
返回值型別 ( * 指標變數名) ([形參列表]);
如:int func(int x); /* 宣告一個函式 */int (*f) (int x); /* 宣告一個函式指標 */f=func; /* 將func函式的首地址賦給指標f */f = &func;
賦值時函式func不帶括號,也不帶引數,由於func代表函式的首地址,因此經過賦值以後,指標f就指向函式func(x)的**的首地址。
下面的程式說明了函式指標呼叫函式的方法:
#include
int max(int x,int y)
int main()
2樓:寒寒家
比如c++中的快排函式qsort, 的最後一個函式就是函式指標 compare, 這個函式決定了排序是從小到大,還是從大到小
int (*compare)(void *a, void*b);
然後咱們定義下面兩個函式:
int ascending(void *a, void *b)
int descending(void *a, void *b)
在呼叫qsort(int a, n,sizeof(int), ascending);就是升序。
而qsort內部實現過程中,對於陣列元素之間的比較,都是使用的compare函式指標完成的。
從這個例子可以看出,函式指標,增加了**的靈活性和複用性(為了升序和降序,不用寫兩個版本的qsort)
c語言中,函式指標的強制型別轉換有什麼作用?
3樓:姬思溪運英
如果你把sub函式bai改為int
sub(int
a,int
b,int
c,int
d,int
e,int
f,int
g,int
h),你就會發現後面du那幾個引數
就zhi變得不dao正常,道理很簡單,版引數push過少,函權數傳遞引數是把引數push進堆疊,在函式題裡面再pop出來,至於什麼作用我也不大清楚,也許是想得到堆疊的資料,不過最好不要這麼用。
4樓:匿名使用者
不同的指標在進行指標加減的時候步長不一樣,int型是4,char型是1,假設ptrint和ptrchar的指標地址都為1,那麼ptrint+1=5,而ptrchar+1=2
5樓:匿名使用者
函式指標強轉儘量bai不要有,僅用於類du型zhi實際是相同的,但定義的
dao變數型別不同內,如
另一個程式設計師寫了段容
**,要求你提供一個函式指標,型別如下:
typedef int (*ftype)(int,int);
但你寫的函式是 unsigned int fun(unsigned int,unsigned int),引數一個有符號,一個無符號,在你知道符號不影響結果的情況下,可以強制轉換。
6樓:匿名使用者
函式指標強轉儘量不要有,僅用於型別實際是相同的,但定義的變數型別不同,專如
另一個程式設計師寫了段**屬,要求你提供一個函式指標,型別如下:
typedef int (*ftype)(int,int);
但你寫的函式是 unsigned int fun(unsigned int,unsigned int),引數一個有符號,一個無符號,在你知道符號不影響結果的情況下,可以強制轉換。
7樓:倪丫愛
如定義的型別是int
int a
如果後來用到的a是小數則
可(double)a
那麼你輸入的a就可是小數的演算法了
C語言的指標有什麼用,C語言中的指標到底有什麼用
c的函式引數傳遞規則是傳值,所以無論你對傳入函式的行參如何改變,函式返回,輸入函式的引數原來是什麼就還是什麼,用指標間接訪問,使得引數的傳遞變為傳址,就可以對這個引數進行改變.大概的意思就是這樣的,當然指標決不只這一點用途,作用太大了,你還是要好好學學的 c提供了兩種訪問變數的方法。通過變數名和通過...
c語言的函式指標舉個例子,c語言中函式指標是什麼 有什麼用 舉個例項
劉文正粉絲 函式指標告訴cpu下一步需要執行 的 的指標,一陣列十分相像.include void function int i,double d 一個函式的宣告 void anotherfunction int i,double d 另外一個函式宣告 int main mxl033 回答是對的。v...
c語言中清屏函式是什麼,C語言中清屏函式是什麼?
莊生曉夢 c語言中清屏函式是為清除螢幕上的輸出功能,用法是 void clrscr void 程式例 include int main int i clrscr for i 0 i 20 i cprintf d r n i cprintf r npress any key to clear scre...