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 的語法,...