c語言函式和指標的問題,C語言函式和指標的問題

2021-12-27 17:34:06 字數 2383 閱讀 4016

1樓:匿名使用者

第乙個猜測:

void ( (*operatestate)(u8) ) 其中operatestate是個函式指標 等效於void (*operatestate)(u8) 類似第三個

第二個確定:

void (*getoperatestate(void) )(u8) 其中getoperatestate(void) 為函式體void (* )(u8) 為返回值,及返回乙個函式指標(引數u8返回值void),

第三個:

void (*operatestatebeforelvrt)(u8 initstate) = 0; 給函式指標賦空值;operatestatebeforelvrt函式(引數u8返回void)指標,

2樓:惡靈的加護

第乙個正如你所說。

第二個的話是個函式的定義,這種返回函式指標的型別沒法直接寫在函式名的前面,所以

void (*getoperatestate(void))(u8)這一行是標明了返回值是個函式指標,返回的函式指標的結構跟第乙個裡的一樣,實際上也就是把第乙個宣告的函式指標給返回了。

第三個跟第乙個差不多,但是0不是指入口位址為0的函式,0代表null,是無的意思,這個是不能被呼叫的。

c語言指標呼叫函式問題,急求解釋(本題是《c和指標》上的題目)

3樓:自我程式設計

我不清楚你的疑問到底指哪些。我就你寫的這些**解讀:

int read_column_numbers(int columns, int max)函式功能:

傳引數組首位址,及陣列最大長度。

使用者輸入max個整數,只儲存其中的正整數(負數忽略),如果正整數的個數是偶數則返回個數。否則程式結束。

void rearrange(char *output,char const *input,int n_columns, int const columns)函式功能:

傳參 陣列output首位址 , 陣列input首位址 ,使用者輸入正整數個數,正整數陣列

迭代陣列,根據使用者的輸入的數字作為input起始下標,複製並拼接到陣列output中(具體邏輯我不研究了)。

strncpy(output + output_col,input + columns[col],nchars)這裡就是就是拼接複製,變數output_col記錄的是output 已儲存字元長度,output + output_col就是每次接在已有字元後面放複製的字元。input + columns[col]是使用者輸入的數字作為起始位置的偏移量取nchars個字元複製到output 中。

總結:一、

首先陣列名作為引數傳遞,無論形參定義是指標還是陣列(int *columns 和 int columns[ ]效果是一樣的),最終都是傳位址。

二、陣列形參定義char const *,修飾符const表示常量不可修改,這裡const修飾的是*input,表示陣列指標指向的位址內容不能修改,但是陣列指標本身值可以修改。也就是說函式中可以改變input指向的位址(比如input++),但是不能改變其指向的值(比如input[0]='a')。

c語言指標函式和函式指標有什麼不同

4樓:匿名使用者

如樓上所說 。

指標函式 的本質是 函式 ,只是他的返回值 型別 是指標變數。

比如 int * a(int num); 這就是乙個 指標函式。

函式指標 是乙個 指標變數 ,只不過 他是 指向函式的 指標變數。

比如 有函式定義 如上 int * a(int num); 再有 int (*pf)(int num);

則是 pf = a;就把 函式a的首位址 賦值給 pf 函式指標了。

5樓:匿名使用者

指標函式本質是函式,函式的返回值為指標;而函式指標本質是指標,指向乙個函式的指標。

6樓:匿名使用者

指標函式是說乙個函式,它的返回值是乙個指標;

函式指標是乙個指標,它指向乙個函式。

c語言指向函式的指標問題

7樓:丿艾瑞灬莉婭

首先,這個**連編譯的過不了

單從你主函式的x=sub(p,q,3),我也不知道你那是q還是9。

忽略程式設計的角度,單從題目的大意,把你的q當做是9x = sub(p,9,3) = funa(9,3) = 9+3 = 12;

x += sub(funb,8,3),x = x+funb(8,3) = 12 + (8-3) = 17

結果是17

8樓:藍天不是藍色了

用**敲出來吧 ,你現在這個連偽**都不算

C語言指標建立函式問題,C語言指標呼叫函式問題,急求解釋(本題是《c和指標》上的題目)

第乙個表示傳遞graphadjlist型別的引用g,第二個表示傳遞graphadjlist型別的指標g 另外這是c 不是c。c語言指標呼叫函式問題,急求解釋 本題是 c和指標 上的題目 c語言指標作函式引數時的返回問題 首先,弄懂函式引數都是靠值傳遞。指標也是。進入函式後,函式建立幾個空間給形參,再...

C 指標的問題,C語言指標問題

這麼說吧,指標是以後資料結構的基礎,比如單鏈表,雙鏈表,二叉樹等等等等,全部都時指標做的,還有1720次對於現在的計算機來說,是個很小很小很小的數量級。指標學好了受益匪淺,並且也是程式設計今後必須的。指標的確是可以大大提高效率,但是要看你怎麼用,就和遞迴演算法一樣,另外,顯示位址是你語句的問題。比如...

C語言,不定引數的函式指標問題

很巧我現在正好也有實現這樣函式的需求,其實就是看了c語言可變引數函式的相關資料,你就差不多知道怎麼實現了。只不過其中有乙個很重要的大坑,只要邁過去就沒問題。我是試了半天才明白的 如果引數是char或float型別,這樣的引數放在可變引數部分的話,編譯器是會預設把它們的型別提公升為相應的 全 型別的 ...