cpp小知识——struct和typedef struct

in C

  1. 使用typedef来定义一个结构体类型, 例如
typedef struct Student {
	int a;
}Stu;
  • 因为使用了typedef, 这里的Stu, 其实就是struct Student的别名, 于是声明变量的时候就可以Stu
    student1;

  • 假如没有使用typedef, 那么声明变量的时候就需要struct Student student1;

  1. 另外, 也可以不写Student, 例如
typedef struct {
	int a;
}Stu;

这样, 声明的时候必须是Stu student1;

in C++

  1. 可以直接定义结构体类型Student, 声明变量的时候就可以直接Student student1了, 例如
struct Student {
	int a;
}
  1. 如果要使用typedef, 那么会有这样的区别
struct Student {
	int a;
}Stu1; 			// Stu1是一个变量
typedef struct Student {
	int a; 
}Stu2;			// Stu2是一个结构体类型

在使用时, 可以直接访问Stu1.a

但是, 使用Stu2时, 需要先声明一个变量, 然后再访问其成员, 例如

Student student;
student.a = 2017;

其实可以这么看, 在

typedef struct Student {
	int a; 
}Stu2;	

中, 其实是做了两步工作的

  • 首先定义了一个结构体, 就是中间的部分, Student就是一个标识符, 一个临时名字
  • 其实typedef为这个结构起了一个新的名字, 叫Stu2, 所以就需要先声明一个变量, 然后再访问其成员变量

猜你喜欢

转载自blog.csdn.net/CSDN_dzh/article/details/83314279
今日推荐