C结构体、C++结构体、C++类的区别
C 结构体与 C++ 结构体
- C 语言中的结构体不能为空,否则会报错
- C 语言中的结构体只能定义成员变量,C++ 中结构体既可以定义成员变量又可以定义成员函数
C++ 结构体与C++类
- 对于成员访问权限和继承方式,class 中默认的是 private,而 struct 中则是 public。
- C++ 中保留 struct 关键字是为了使 C++ 编译器能够兼容 C 语言开发的程序
结构体和联合体区别
- 结构和联合都是由多个不同的数据类型成员组成
- 同一时刻, 联合中只存放了一个成员(所有成员共用一块地址空间,内存大小为最大的成员变量), 而结构体的所有成员都存在(不同成员的存放地址不同,内存大小为成员变量之和)。
- 对联合体不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。