int foo (int x) {
int (*d)(int *) = foo; //what is the meaning of this line?
...
}
這是我學校的一個老練習題,但我找不到解決方案。是否將變數初始化為函式?
uj5u.com熱心網友回復:
這個記錄
int (*d)(int *) = foo;
是函式指標的宣告,該函式指標d具有回傳型別int和型別的一個引數int *。該指標由函式的地址初始化foo(函式指示符隱式轉換為指向它的指標)。
請注意,該函式foo應宣告為
int foo (int *x) {
或者指標應該宣告為
int (*d)(int ) = foo;
否則在此宣告中
int (*d)(int *) = foo;
使用了不兼容的指標型別。
uj5u.com熱心網友回復:
據我所知,該a宣告與您的問題無關。int (*d)(int *)定義一個指向d函式的指標,該函式接受一個int *并回傳一個int。= foo集d等于 的地址foo。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/406059.html
標籤:
下一篇:我試圖從并行陣列中洗掉一個元素
