1. 程式人生 > >struct和typedef struct用法和區別

struct和typedef struct用法和區別

1 首先://注意在C和C++裡不同

1.1 在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;

1.2 在c++裡很簡單,直接

struct Student
    {
    int a;
    };

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

2.其次:

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

struct Student   
    {   
    int   a;   
    }stu1;//stu1是一個變數  
 typedef struct Student2   
    {   
    int   a;   
    }
stu2;//stu2是一個結構體型別=struct Student
  • 使用時可以直接訪問 stu1.a
  • 但是stu2則必須先 stu2 s2;
  • 然後 s2.a=10;

更多參考 https://www.cnblogs.com/qyaizs/articles/2039101.html