《C++ Primer Plus》学习笔记|第四章-复合类型 (24-11-30更新)

4.5共用体 union

union,也叫联合体,允许在同一段内存位置中存储不同的数据类型,这些不同的数据类型共享同一块内存空间。

共用体的大小为其成员中占用空间最大的成员的大小。

共用体的用途之一是,当数据项使用两种或更多种格式(但不会同 时使用)时,可节省空间

4.6 枚举 enumeration

枚举的定义

enum spectrum {red,orange,yellow,green,blue, violet, indigo, ultraviolet};

其中spectrum被称为枚举
redorangeyellow等对应整数值0~7。这些常量叫作枚举量(enumerator)

枚举的声明

Spectrum band;

bandspectrum枚举类型的一个变量,类似于结构体和类定义之后要进行实例化。

4.6.2 枚举的取值范围

枚举的值只能赋为定义的其中一个值,不能超出这个范围。

C++11特性:作用域内枚举。

最开始只有声明中有效的值才是枚举的合法值,而在C++11中,在枚举定义范围的上下限内的值都是合法的。

4.8 指针、数组和指针算术

将指针变量加1后,增加的量等于它指向的类型的字节数。

4.8.5 自动存储、静态存储和动态存储

1、自动存储

在函数内部定义的常规变量使用自动存储空间,被称为自动变量(automatic variable),这意味着它们在所属的函数被调用时自动产 生,在该函数结束时消亡。

自动变量是一个局部变量。
自动变量通常存储在栈中。

2、静态存储

静态存储是整个程序执行期间都存在的存储方式。使变量成为静态的方式有两种:一种是在函数外面定义它;另一种是在声明变量时使用关键字static:

3、动态存储

它们管理了一个内存池,这在C++中被称为自由存储空间(free store)或堆(heap)。该内存池同用于静态变量和自动变量的内存是分 开的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值