一、struct与typedef的区别
在C中:
//方法一
typedef struct Student{ //有typedef关键字,声明了Student结构体类型
int number;
char gender;
float score;
}stu;
stu stu1; //声明变量的方式
//方法二
//在方法一的基础上,省略掉Student,进而变为一个无名结构体
//方法三
struct Student{ //没有带typedef关键字,声明了Student结构体类型
int number;
char gender;
float score;
}stu;
struct Student stu1; //必须带上struct关键字,才能声明变量
C++中
struct Student //定义了Student结构体类型
{
int number;
char gender;
float score;
};
Student stu1;//声明stu1变量
//也可以
struct Student //定义了Student结构体类型
{
int number;
char gender;
float score;
}stu1; //声明stu1变量
stu1.number=1 //访问成员number
//若用了关键词typedef,则
typedef sruct Student
{
int number;
char gender;
float score;
}stu1; //声明的是stu1结构体类型
stu1 freshman; //先用结构体类型声明freshman变量
freshman.number=9; //再用freshman变量访问内部成员
二、C++中有关符号的问题(-> . : ::)
-> 叫做指向结构体成员运算符,用处是使用一个指向结构体或对象的指针访问其内部成员
a->b b是a中的成员,a为指针,->成员提取
:: 域操作符
. a.b a是实体,b是成员
: 通常用来表示继承