本文目錄一覽:
- 1、c語言結構體問題,結構體末尾的Stu是什麼;typedef加或者不加有什麼區別?
- 2、為什麼數據結構中結構體定義時都要寫成typedef struct?直接寫成struct不就可以嗎?
- 3、c語言里結構體定義?
- 4、c語言問題 圖中定義結構體為什麼要加typedef,這樣不就沒有結構體名了么,定義day函數時參數
- 5、求解答c語言結構體定義中typedef的作用
c語言結構體問題,結構體末尾的Stu是什麼;typedef加或者不加有什麼區別?
不加typedef即定義了一個結構體變量Stu,即Stu是一個結構體變量
而加了typedef的目的是為了定義結構體類型的別名,之後Stu等效於struct Student是一個新的結構體類型了,即Stu是一個結構體類型
為什麼數據結構中結構體定義時都要寫成typedef struct?直接寫成struct不就可以嗎?
在C語言中,如果你這樣定義結構體:
struct Node
{
ElemType data;
struct Node *next;
};
那麼聲明這種結構體的變量,就必須這樣寫:
struct Node xxx;
每次都必須在前面加一個struct,這樣很麻煩,可以用typedef給這個結構體定義一種類型名:
typedef struct Node
{
ElemType data;
struct Node *next;
}MyNode;
那麼你現在有了一種新類型叫MyNode,它和int、double、char這些一樣都是基本類型,可以直接這樣定義這種結構體類型的變量:
MyNode xxx;
不用寫前面的struct了(也不能寫),省去麻煩。
而C++中,struct和class一樣本質上都是類,因此不用使用typedef了,直接定義就可以:
struct Node
{
ElemType data;
Node *next;
};
Node xxx;
c語言里結構體定義?
1、struct REC
{int n; char c;};
REC t1,t2;//修改 struct REC t1,t2;
因為不是所有編譯器都支持你那種寫法
2、
typedef struct REC
{int n=0;char c=’A’;}t1,t2;
REC t1,t2
不知道你什麼意思,不過可以這樣寫
typedef struct
{int n=0;char c=’A’;}
REC;
REC t1,t2
表示將這個結構體重命名為REC,否則使用這類型的時候需加struct(特別是C編譯器)
3、struct
{int n;char c;}REC;
這種方式編譯應該通過的,不過是將REC認為是變量,而不是類型
總之你要定義一個t1或者t2的變量,常用以下幾種寫法
struct
{
……
}t1,t2;
struct REC
{
….
};
struct REC t1,t2;
typedef struct
{
…..
} REC;
REC t1,t2;
希望你能理解原理哈
c語言問題 圖中定義結構體為什麼要加typedef,這樣不就沒有結構體名了么,定義day函數時參數
在C中定義一個結構體類型要用typedef:
typedef struct Student
{
int a;
}Stu;
於是在聲明變量的時候就可:Stu stu1;(如果沒有typedef就必須用struct Student stu1;來聲明)
這裡的Stu實際上就是struct Student的別名。Stu==struct Student
另外這裡也可以不寫Student(於是也不能struct Student stu1;了,必須是Stu stu1;)
typedef struct
{
int a;
}Stu;
求解答c語言結構體定義中typedef的作用
加上typedef意為標籤式定義,在結構體定義之後,在定義類型時直接可以用結構體的名字去定義對象。而不加上typedef的話為類型名定義,也就要求之後再定義對象時需要加上
struct
MyStruct
才可以進行對象定義。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/156556.html