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中同样,只不过它可直接使用结构名,命名结构变量。结构体

相关文章
相关标签/搜索