在C中定义结构体类型并声明变量
1. typedef struct <结构体名称>{};
//声明结构体Student
typedef struct Student
{
int a;
}Stu;
//声明变量stu1
Stu stu1;
//Stu实际上就是struct Student的别名
struct Student stu1;
//声明结构体Student
struct Student{
int a;
}Stu;
//声明变量stu1
//如果没有typedef,则不能使用Stu stu1!!
struct Student stu1;
- 无结构体名称时:
typedef struct
{
int a;
}Stu;
Stu stu1;
在C++中定义结构体类型并声明变量
在c++里很简单,直接
struct Student
{
int a;
};
//定义了结构体类型Student
Student stu2;
在C++中如果使用typedef,如:
typedef struct Student
{
int a;
}stu2;
//stu2为结构体类型
stu2 s2; //结构体类型实例化
s2.a; //访问结构体变量
//-------------------------------------//
struct Student
{
int a;
}stu1;
//stu1为Student的实例化对象
stu1.a; //访问
总结
C/C++中typedef struct和struct的用法:
struct _x1 { …}x1;
和typedef struct _x2{ …} x2;
有什么不同?
前者是定义了类_x1和_x1的对象实例x1, 后者是定义了类_x2和_x2的类别名x2 .
定义结构变量的一般格式为:
struct 结构名
{
类型 变量名;
类型 变量名;
…
} 结构变量;
结构名是结构的标识符不是变量名。
另一种常用格式为:
typedef struct 结构名
{
类型 变量名;
类型 变量名;
…
} 结构别名;