其他¶
结构体的指针¶
此处,或出现在初赛中,平时写代码,较少出现。
#include <iostream>
using namespace std;
struct stu{
string name;
int id;
int chinese, math;
};
int main()
{
stu A = {"xiaoming", 1001, 90, 95};
stu *p = &A; // 定义一个指针
cout << p->name << ' ' << p->id << '\n'; // 通过->访问成员变量
return 0;
}
联合体¶
联合体 union
是一种构造类型的数据结构,在一个联合体中可以定义多种不同的数据类型,和结构体相似。
联合体变量可以存入其定义的任何一种数据类型,各成员变量共享一段内存空间,即每次只能赋一种值,赋入新值则覆盖旧值。一个联合体变量占用的空间等于各成员中最大的变量所占用的空间。
结构体和联合体的区别在于:
- 结构体(struct)中所有变量是“共存”的——优点是“有容乃大”,全面;
- 缺点是struct内存空间的分配是粗放的,不管用不用,全分配。
- 而联合体(union)中是各变量是“互斥”的——缺点就是不够“包容”;
- 但优点是内存使用更为精细灵活,也节省了内存空间。
题单¶
参考¶
C++ 结构体(struct)最全详解 - 一杯清酒邀明月 - 博客园
https://fuhailin.github.io/C-CPP-Structer/
C++何时调用构造函数,何时调用析构函数_构造函数和析构函数的调用时机是什么?通常情况下构造函数的作用是什么?-CSDN博客
Struct and union initialization
《信息学奥林匹克词典》
《算法竞赛入门经典(第2版)》
union https://learn.microsoft.com/zh-cn/cpp/cpp/unions?view=msvc-170
C语言union的用法及好处 https://blog.csdn.net/rchris520/article/details/109232732