C語言 在結構體內部定義函式指標?

2025-06-27 01:55:49 字數 3303 閱讀 3879

1樓:樂跑小子

只能給那個函式傳個引數。

struct cat ;

void cat_voice(struct cat* c)int main()

2樓:網友

是函式的指標!

在呼叫該函式時傳入的引數是pstruct_x*,同樣也可以把指標定義在函式內部!

3樓:彭珂的課堂

c語言_071_指標的定義和使用_上。

c語言結構體內部的函式指標有什麼意義

4樓:網友

//在結構體中包含函式指標,/這樣,可以使用結構體,呼叫函式。

這個有點像c++的物件導向的類。

十分好用。#include ""

struct demo

int add2(int x,int y)int main()

c語言中如何在結構體裡寫函式,指向函式指標問題。

5樓:

樓上正解,c畢竟不是面相物件的語言,你可以用它寫出物件導向的風格,函式指標和其他指標一樣,要指向要執行函式的位址,a而且函式指標的原型要和對應函式的原型一致。

c 語言 結構體中 的函式指標?

6樓:網友

c語言結構體裡面 變數後面加冒號,表示位段。

冒號後面一般跟某個數值表示這個變數佔幾位。

比如 struct abc

int f1 :1;

表示變數f1只佔一位(乙個位元組8位)的空間。

但是在你的結構體裡面,我看不出來是做什麼的。

看你的**,應該是微控制器或者嵌入式方面的。

7樓:網友

才疏學淺呀,沒看過這樣的表達方法!看看有哪位高人能知道?

8樓:網友

init、init_boot_up都是名字可以任意取的。

冒號是作用域限定符(好像是叫這個)說明init結構體中有init_boot_up()這個方法並進行呼叫。

mystruct結構體呼叫了init結構體的init_boot_up()方法。

c語言如何在結構體中定義指向自身資料結構的指標?

9樓:網友

上樓錯誤:

在定義*pa的時候,編譯器根本就不知道還有a這個型別所以應該是這樣的。

typedef struct a

a;象定義連結串列的結構的時候有這樣:

typedef struct lq

lqnode;

乙個道理。

10樓:社會人二

這是連結串列,搜一下連結串列的相關知識你就會了。

c語言函式指標作為結構體的問題

11樓:網友

首先解釋一下 &st 的問題吧:&st 就是取結構體的 st 的位址傳給結構體內的函式 p 和 o, 根據前面 st 的定義,也就是傳給 print 和 power。這樣 print 和 power 函式就可以讀取結構體中的 i 和 x 值。

然後沿著各個思路,可以寫出 print 和 power 函式,如下:

void print(st *st)

void power(st *st)

不過這裡有個問題,就是你之前的 struct 中定義的函式指標是沒有引數的,但是主函式呼叫時是有引數的,這是矛盾的呀。要改一下:

struct st ;

就沒有問題了。

12樓:網友

*************************====&st為取結構體的首位址,即通過位址傳遞st樓下給結構體函式指標宣告引數者多此一舉,樓下不使用中pow函式者的**在print函式里實現了計算與顯示,其**內聚度非常差(即功能不單純),且要求中以有要求寫power功能,c作為程序導向程式設計應該高內聚度低耦合度。另外其實現的求冪只能侷限與整數冪,也為敗筆。

以下**純粹是按要求實現,沒有對作者原型做任何修改******************************//

to compile, use: cl#include

#include

typedef struct st;

void print(st* st);

void power(st* st);

int main();

return 0;

void print(st* st)

void power(st* st)

13樓:匿名使用者

&st代表取st這個結構體資料的位址。p函式和o函式的原型不是表明它們不接受引數的麼?怎麼下面會傳參給它們?

c 語言結構體為什麼可以定義自己的指標,和函式指標 ,而不能定義自己型別的變數呢?請教大拿

14樓:網友

因為自己型別的變數在這個型別中定義時,是不完整型別,除非你完成定義,不然不會知道這個型別的大小,而且本身巢狀本身,就等於是無窮遞迴的了。

但指標就不同了,c語言的指標大小是4個位元組,他只是指向乙個位址,和其他的全部無關,他不需要知道自己型別有多大,有怎樣的結構什麼的,這些都不是他該關心的,他只要指向乙個正確的位址就ok了,這就是指標的職責。定義指標是確定,不會影響該型別的結構,也不會出現無窮遞迴,所以在結構體中定義自身指標是合法的。

15樓:網友

c語言結構型別變數的定義是分兩個步驟完成的:

步驟一定義結構資料型別,例如:struct dataset ;

這個定義僅僅定義了乙個結構資料型別的組織形式,定義後它的作用就和系統中的int、float相同,是用來定義變數的說明符。

步驟二,利用已經定義好的結構資料型別定義結構型別的變數,例如:struct dataset x1,*x2; 這裡定義了兩個struct dataset 資料型別的變數,x1是結構型別變數,x2是結構型別的指標變數。

按c的語法規定上述兩個步驟也可以在乙個語句中完成,但是各自的作用仍然不變,例如:

struct dataset

x1, *x2;

結構體可以在函式內部定義嗎?c語言

16樓:段幹睿思彤瑗

以前沒考慮過,剛才試了一下可以。不過不知道你說的是哪種定義,是定義一種結構體的型別,還是定義乙個結構體的變數。反正下面這個函式是可以用的。

voidabc()

dd;struct

dd;;;

C語言中怎麼在函式體內定義常量?請舉簡單的例子。我是新手,感謝

pi就是定義的一個常量。你想bai要什du 麼樣zhi的dao常量回?答 void func void define max num 10const int a 3 什麼是函式。什麼是變數。什麼是常量,請你舉一個反映函式關係的例子 函式是 在一個變化過程中,有兩個變數x y,如果給定一個x值,相應的...

c語言結構指標和結構體成員指標問題

既是取地址符號,一個指標p指向q就需要寫作p q,在函式引數裡是 引用 就是別名,類似指標了,這種情況下對變數的修改會影響到函式外的原變數。那個printf a p n a 等於求出地址 x然後作為指標看待 p 所以也是yyyy了 樓主可以做個試驗,看看輸出結果地址間的關係,你就應該可以理解了 in...

C語言,函式指標定義中實參表為空的問題

如果函式宣告是void fun int n,char s 那麼指向該函式的指標宣告也必須是void pf int,char void pf 是錯誤的,不能用於指向該函式。函式指標只是個指標,關鍵是呼叫時,引數是否一致。c語言函式宣告中將函式指標引數設定為null的預設值 指定形參預設值是c 的語法,...