struct 和typedef struct的區別

和int char同樣struct也是一種數據類型,也能夠聲明變量--結構變量。
定義結構體變量的通常格式爲:c++

struct 結構名
{
    類型 變量名;
    類型 變量名;
    ...
}結構變量;

另外一種經常使用的格式爲:code

typedef struct 結構名
{
    類型 變量名;
    類型 變量名;
    ...
}結構別名;

結構名是結構的標識符,它不是結構變量名,可加可不加。io

Struct 在C語言中有下面四種用法:變量

1.

struct
{
    int num;
    char name;
}Stu;

Stu是這個結構體的結構變量,不能再聲明其餘結構變量,
只能直接訪問
Stu.num;數據類型

2.

struct Student
{
    int num;
    char name;
}Stu;

必須使用struct Student聲明struct變量
struct Student Stu1;
Stu1.num;
而Stu已經被聲明成struct變量可直接訪問
Stu.num;命名

3.

typedef struct
{
    int num;
    char name;
}Stu;

Stu至關於 struct{}的別名,能夠聲明struct變量。
Stu Stu1;
Stu1.num;數據

4.

typedef struct Student
{
    int num;
    char name;
}Stu;

struct Student Stu1;
Stu1.num;
有typedef後,Stu至關於struct Struct{}的別名,能夠聲明struct變量
Stu St2;
St2.num;語言

在c++中很簡單,直接co

struct Student
{
    int num;
    char name;
}Stu;

申明變量時可直接 Student Stu1;
而Stu仍是struct變量,可直接訪問Stu.num;
在c++中使用typedef賦別名也和C中同樣,只不過它可直接使用結構名,命名結構變量。結構體

相關文章
相關標籤/搜索