1.结构
结构和数组一样,都是数目固定的若干变量的有序集合,区别在与结构中的若干成员可以是不同类型的。
定义: struct 结构名 {若干成员说明};
结构变量定义: struct 结构名 变量名;
使用一个结构体变量给另一个赋值时,只涉及值拷贝。
C++较少使用结构和联合,更多使用class来定义类。
struct student { char* name; int age; }s1,s2={"zbwang",28}; struct student s3,*pointer=&s3; s2.age = 29; pointer->age=29;
2.联合
定义: union 联合名 {联合成员说明};
联合和结构体的根本差别在于联合类型的所有成员是共址的,而结构体每个成员与其他成员都有不同的内存地址。
联合类型只能用在具有若干个相互排斥的变量情况下。(比如联合类型的成员对于一个对象只会有一个是有意义的)
#include <iostream> using namespace std; union student { int maleAge; int femaleAge; }s1, s2; void main(){ s1.maleAge = 88; s1.femaleAge= 99; cout << s1.maleAge<< endl;//99 实际上此时只有femaleAge是有效的 cout << s1.femaleAge<< endl;//99 }