C中,定义一个结构体变量必须要用typedef(只有这一种方式):
typedef struct Student
{
int a;
float b;
}Stu;
Stu s1;
s1.a=1;
s1.b=2.2;
而在C++中,有两种方式,
方式一:不需要typedef即可定义
struct Student
{
int a;
float b;
}Stu;
Stu.a=1;
Stu.b=2.2;
可以直接用Stu.a;而不需要Stu s1;然后再s1.a;
方式二:用typedef定义
typedef struct Student
{
int a;
float b;
}Stu1;
Stu1 stu1;
stu1.a=1;
stu1.b=2.2;
只要用了typedef struct,c和c++的用法一样,只是c++多了一种表示:
typedef struct student
{
...
}stu;
一、c的表示两种:
struct student s1
或 stu s1
二、c++的表示三种:
struct student s1
或 stu s1
或 student s1
另:
无论是
typedef struct student
{
...
} *pstu;
还是
struct student
{
...
} *pstu;
都表示的是 student *pstu