作者Arton0306 (Ar藤)
看板C_and_CPP
標題Re: [問題] struct
時間Sun Apr 22 21:32:38 2012
※ 引述《aznchat100 (KG is MVP)》之銘言:
: 問題(Question):
: 1.
: type struct node{
: ..........}NODE;
: 2.
: typedef struct node NODE{
: .......};
: 我今天在圖書館翻片了大大小小本的C語言書
: 還是找不到我要的解答
: 想請問這邊的高手 這兩個寫法差在哪裡?
: 感謝!!
你的code本身就怪怪的
下面附上我以前自己試驗的筆記
看是不是你要的東西
===============================================
一個匿名的struct 所以不可用
struct
{
int x;
};
---------------------------------------------------------
一個匿名struct,但之後馬上接上變數名a,所以a的type是此struct。
struct
{
int x;
} a;
a.x=5;
---------------------------------------------------------
定義一個叫做a的struct,並定義一個type為a的foo變數,其x元素為5
typedef struct
{
int x;
} a;
a foo={5};
---------------------------------------------------------
看下面的範例
typedef struct b
{
int x;
} a;
a x={5};
struct b y={6};
printf("%d %d", x.x, y.x); // 輸出5 6
目前看起來a和struct b是一樣的,兩者有什麼地方不同嗎?
有!
當有在struct宣告一個指向本身struct的指標時會不同。
typedef struct b
{
int x;
a * y;
} a;
上面這寫法錯誤 a * y 中的a尚未可見 compile不過
typedef struct b
{
int x;
struct b * y;
} a;
上面這寫法才正確
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.140.149
推 aznchat100:感謝 我看到的那本書應該是有印刷錯誤 04/22 21:35
→ tjjh89017:a的意思是"型態"而不是"變數"嗎? 我之前在用的時候 04/22 21:46
→ tjjh89017:再用sort的時候我會丟一個像是a的"型態",可是丟一個 04/22 21:47
→ tjjh89017:型態為a的物件@@ 04/22 21:48
→ tjjh89017:這樣也可以........抱歉有點不清楚 04/22 21:49
推 Arim:推 很清楚 04/29 21:19