Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

12.3.1 sizeof运算符

那么,一个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显然不是统计元素数量。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Python编程入门与实战

Python编程入门与实战

Posts & Telecom Press, Fabrizio Romano

Publisher Resources

ISBN: 9787111562252