1樓:劉文正粉絲
函式指標告訴cpu下一步需要執行**的**的指標, 一陣列十分相像.
#include
void function(int i, double d) //一個函式的宣告
void anotherfunction(int i, double d) //另外一個函式宣告
int main()
2樓:匿名使用者
mxl033 回答是對的。
void* func(void)這種不是函式指標,而只是一個返回一個指標的函式。是函式,而不是指標。
typedef void (*pfunc)(); // 函式指標型別宣告,指向的是無返回無引數的函式.
typedef int (*pfunc1)(int,int); // 函式指標型別宣告,指向的是返回int型,引數有兩個int型的函式。
void func1()
int add(int a, int b)int main(void)
樓主可以慢慢體會,不懂再問吧
3樓:仙戈雅
返回指標函式的原型:型別名*函式名(引數列表);
如果按照你的vod * func(void) {}感覺不太對。既然有返回值(指標),怎麼會是void呢。所以顯示不對。
#include
char *func(void)
void main(void)
4樓:匿名使用者
呵呵,看來你學得挺深啦!:)
-----------------------假設函式定義如下
int func( int a, int b)-------------------------1)宣告一個指標變數 pfunc,該變數指向函式funcint (*pfunc) (int, int);
2)給pfunc賦值: pfunc = func (或者 pfunc = &func)
3)使用pfunc:
int result;
result = pfunc(1, 2);
5樓:匿名使用者
typedef void (*pfunc)();
void func1()
int main(void)
c語言中函式指標是什麼 有什麼用 舉個例項
6樓:風若遠去何人留
函式指標是指向函式的指標變數。 因而「函式指標」本身首先應是指標變數,只不過該指標變數指向函式。這正如用指標變數可指向整型變數、字元型、陣列一樣,這裡是指向函式。
函式指標有兩個用途:呼叫函式和做函式的引數。
函式指標的宣告方法為:
返回值型別 ( * 指標變數名) ([形參列表]);
如: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()
7樓:寒寒家
比如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語言函式呼叫例子
8樓:
#include
int main()
void printstar()
void print_message()
9樓:匿名使用者
比如,你有bai一個函式du
10樓:庚午子李
||整數划來分問題自,有點難理解
#include
main()
int q(int n,int m)
11樓:烏驥由冷萱
c語言中呼叫函式的方
復法及步驟:
1、首先制需要輸入想要呼叫的函式。
2、然後當輸入一個括號後,即可觀察他的引數。
3、接著在對應的引數中輸入引數值。
4、然後,系統會發生一個警告。
5、接著需要呼叫它相應的標頭檔案。
6、最後再次編譯,發現沒有任何警告和錯誤即可。
c語言 函式指標 的呼叫問題?函式指標 怎麼用?最好有例子。。
12樓:長城知道
有函式: int fun(int a,int b);
要定義指向該函式的指標
對比指向 int a; 的指標
int *p; p = &a;
p的定義是怎麼來的?
首先要保證p是一個指標型別
寫下(*p),
然後,考慮下p的基型別,
p的基型別就是變數a的型別int
將int 放在(*p)前面就行了
int (*p);
括號可以省略,就成了 int *p;
同理想要實現 pf = &fun;
(*pf) 將pf定義為一個指標,
將fun的型別作為pf的基型別
fun相當於一個 int (int a,int b)型別的量int (int a,int b) (*pf);
基型別中有圓括號和中括號要後移
int (*pf)(int a,int b) ;//括號不能省略pf = &fun;
呼叫時(*pf)(3,4); pf(3,4)都可以
13樓:擁雲莊主
#include
//定義型別fun_ptr,它是一個函式指標,指向的函式返回值為int,引數為int
typedef int (*fun_ptr)(int);
//fun1
int fun1(int a)
//fun2
int fun2(int a)
int main(int argc, char *argv)執行結果:
14樓:
因為你的引數傳遞的實是指標,那麼這個引數就是實參 不是你所說的形參。
怎麼跑到這個題下了?那就簡單的說下,不多說,看code:
定義:void (*fp)(int x);//函式指標;
int function(int x)
呼叫:fp = function;
fp(2);
C語言指標的概念,它例子具體點,c語言指標的概念
要明白指標的概念,首先得明白程式中的變數在記憶體地址空間中如何存放。記憶體地址空間以位元組為單位,包括程式的 段 資料段 堆還有棧。一個變數有兩個屬性 變數型別和變數名。通過變數名我們可以找到該變數的第一個位元組在地址空間記憶體放的位置 即記憶體地址 通過變數屬性 即變數型別 我們知道該變數總共佔用...
C語言中代表什麼意思?最好舉個例子。謝謝
齋寄竹夫春 首先 是位操作符或,就是對二進位制位或操作,只要有一個位為1都是1,否則為0 比如二進位制 101 001 的結果就是101 那轉換成十進位制是5再說 實際上是 簡寫,比如c a b 然後a c 可以直接寫成a b 明淑琴盈璧 a b,實際上就是a a b,是一個位或運算,是二進位制運算...
C語言指標函式求救
1全部程式是錯的!首先要知道,陣列a,各元素的地址是連續的。當a定義為陣列時a 5 那麼系統會給陣列分配一個連續 物理上是連續的 的儲存空間。這樣將p a,就是將陣列的首地址賦予了指標p,然後p 就是指向了連續地址的下一個元素地址,是合法的。但是,如果a不是陣列,如你的程式 p a,將變數a的地址賦...