结构体和联合体的定义、访问结构体和联合体的成员
时间: 2023-06-23 19:49:34 浏览: 131
全面了解结构体、联合体和枚举类型
5星 · 资源好评率100%
结构体的定义和访问结构体成员:
结构体是由一组不同类型的变量组成的数据类型,可以通过定义一个结构体变量来使用结构体,访问结构体成员使用"."操作符,例如:
```
struct Person {
char name[20];
int age;
float height;
};
Person p;
strcpy(p.name, "Tom");
p.age = 20;
p.height = 1.75;
```
以上代码定义了一个Person结构体,包含了char类型的name、int类型的age和float类型的height三个成员变量,然后定义了一个Person类型的变量p,使用strcpy函数给p.name赋值,给p.age和p.height赋值。
联合体的定义和访问联合体成员:
联合体是一种数据类型,它允许在同一内存位置存储不同的数据类型。联合体的定义方式与结构体相似,但是联合体中的成员变量共享同一块内存空间,因此联合体中只能同时存储一个成员变量的值,访问联合体成员使用"."操作符,例如:
```
union Data {
int i;
float f;
char str[20];
};
Data d;
d.i = 10;
cout << d.i << endl; // 输出10
d.f = 3.14;
cout << d.f << endl; // 输出3.14
strcpy(d.str, "hello");
cout << d.str << endl; // 输出hello
```
以上代码定义了一个Data联合体,包含了int类型的i、float类型的f和char类型的str三个成员变量,然后定义了一个Data类型的变量d,首先给d.i赋值,然后给d.f赋值,最后使用strcpy函数给d.str赋值。由于联合体中的成员变量共享同一块内存空间,因此d.i和d.f的值会互相覆盖,最后输出d.str时,输出的是d.str中存储的值。
阅读全文