struct和typedef struct的區別

2021-06-12 17:44:44 字數 882 閱讀 9329

1)在c中定義乙個結構體型別要用typedef:

typedef struct student

stu;

於是在宣告變數的時候就可:stu stu1;(

如果沒有typedef就必須用struct student stu1;來宣告)

這裡的stu實際上就是struct student的別名。stu==struct student

另外這裡也可以不寫student(於是也不能struct student stu1;了,必須是stu stu1;)

typedef struct

stu;

2)但在c++裡很簡單,直接

struct student

;   

於是就定義了結構體型別student,宣告變數時直接student stu2;

在c++中如果用typedef的話,又會造成區別:

struct   student   

stu1;//stu1是乙個變數  

typedef   struct   student2   

stu2;//stu2是乙個結構體型別=struct student  

使用時可以直接訪問stu1.a

但是stu2則必須先  stu2 s2;

然後 s2.a=10;

typedef struct tagmystruct

mystruct;

在c中,這個申明後申請結構變數的方法有兩種:

(1)struct tagmystruct 變數名

(2)mystruct 變數名

在c++中可以有

(1)struct tagmystruct 變數名

(2)mystruct 變數名

(3)tagmystruct 變數名

struct和typedef struct的區別

1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些比較複雜的型別宣告。至於ty...

struct和typedef struct的區別

在c中定義乙個結構體型別要用typedef typedef struct student stu 於是在宣告變數的時候就可以 stu stu1 如果沒有typedef就必須用struct student stu1 來宣告 這裡的stu實際上就是struct student的別名。stu struct...

struct和typedef struct的區別

1 structtest1 好,定義了 結構 test1,test1.x 和 test1.y 可以在語句裡用了。2 struct test test1 好,定義了 結構 test1,test1.x 和 test1.y 可以在語句裡用了。與 1 比,省寫 了 test 3 typedef struct...