August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
那么,一个int实际占用多少内存?一个指针呢?运算符sizeof()可以回答这些问题:
正如你所看到的,我们可以将sizeof用于一个类型名或表达式。对一个类型名,sizeof给出这种类型的对象的大小;对一个表达式,sizeof给出表达式结果的大小。sizeof的结果是一个正整数,其单位是sizeof(char)——被定义为1。一个char通常被保存在一个字节中,因此sizeof会报告占用的字节数。
试一试
执行上面这个例子,观察我们能得到什么。然后,扩展这个例子以确定bool、double和其他某些类型的大小。
一种类型的大小并不保证在所有C++实现中都相同。目前,sizeof(int)在台式机或笔记本电脑中通常为4字节。如果使用8比特的字节,那就意味着一个int是32比特。但是,嵌入式系统通常使用16比特的int,而高性能体系结构中常使用64比特的int。
一个vector使用多少内存?我们可以尝试下面代码:
输出可能像下面这样:
经过本章和下一章(见14.2.1节)的学习,将很容易解释为什么会得到这样的输出,但目前我们至少知道,sizeof显然不是统计元素数量。 ...
Read now
Unlock full access