当前位置: 首页 > news >正文

C++中使用 sizeof 确定变量的长度

C++中使用 sizeof 确定变量的长度

变量长度指的是程序员声明变量时,编译器将预留多少内存,用于存储赋给该变量的数据。变量的长度随类型而异, C++ 提供了一个方便的运算符——sizeof,可用于确定变量的长度(单位为字节)或类型。

sizeof 的用法非常简单。要确定 int 变量的长度,可调用 sizeof 并给它传递参数 int:

cout << "Size of an int: " << sizeof (int);

以下示例程序演示了如何获悉各种标准 C++ 变量类型的长度:

#include <iostream>int main()
{using namespace std;cout << "Computing the size of some C++ inbuilt variable types" << endl;cout << "Size of bool: " << sizeof(bool) << endl;cout << "Size of char: " << sizeof(char) << endl;cout << "Size of unsigned short int: " << sizeof(unsigned short) << endl;cout << "Size of short int: " << sizeof(short) << endl;cout << "Size of unsigned long int: " << sizeof(unsigned long) << endl;cout << "Size of long: " << sizeof(long) << endl;cout << "Size of int: " << sizeof(int) << endl;cout << "Size of unsigned long long: "<< sizeof(unsigned long long) << endl;cout << "Size of long long: " << sizeof(long long) << endl;cout << "Size of unsigned int: " << sizeof(unsigned int) << endl;cout << "Size of float: " << sizeof(float) << endl;cout << "Size of double: " << sizeof(double) << endl;cout << "The output changes with compiler, hardware and OS" << endl;return 0;
}

输出:

Computing the size of some C++ inbuilt variable types
Size of bool: 1
Size of char: 1
Size of unsigned short int: 2
Size of short int: 2
Size of unsigned long int: 4
Size of long: 4
Size of int: 4
Size of unsigned long long: 8
Size of long long: 8
Size of unsigned int: 4
Size of float: 4
Size of double: 8
The output changes with compiler, hardware and OS

分析:

示例程序的输出指出了各种类型的长度(单位为字节),这是针对我使用的平台(编译器、操作系统和硬件)而言的。具体地说,这是在 64 位系统中以 32 位模式(使用 32 位编译器进行编译)运行该程序得到的结果。如果使用 64 位编译器进行编译,结果可能不同。我之所以使用 32 位编译器,是因为这样该应用程序在 32 位和 64 位系统上都能运行。输出表明,无符号类型和相应的有符号类型的长度相同,唯一的差别在于,后者的 MSB 包含符号信息。

注意:

输出中的长度单位为字节。类型的长度是一个重要参数,对用于存储数字的类型来说尤其如此。 short int 可存储的数值范围比 long long 小,因此您不能使用 short int 变量来存储国家人口数。

提示:

C++11 引入了固定宽度的整型, 让您能够以位为单位指定整数的宽度。 这些类型为 int8_t 和 unit8_t,分别用于存储 8 位的有符号和无符号整数。您还可能使用 16 位、 32 位和 64 位的整型,它们为 int16_t、 uint16_t、 int32_t、 uint32_t、 int64_t 和 uint64_t。要使用这些类型,必须包含头文件<cstdint>。

该文章会更新,欢迎大家批评指正。

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:
服务器课程:C++服务器

相关文章:

C++中使用 sizeof 确定变量的长度

C中使用 sizeof 确定变量的长度 变量长度指的是程序员声明变量时&#xff0c;编译器将预留多少内存&#xff0c;用于存储赋给该变量的数据。变量的长度随类型而异&#xff0c; C 提供了一个方便的运算符——sizeof&#xff0c;可用于确定变量的长度&#xff08;单位为字节&…...

我们的衣物收纳商品政策

本政策涵盖的衣物收纳商品 衣物收纳商品是指带有抽屉或铰链门的家具商品&#xff0c;用于存放衣物。此政策适用于独立式衣物收纳商品&#xff0c;包括但不限于高度为 27 英寸&#xff08;69 厘米或 686 毫米&#xff09;或更高&#xff08;从地面到商品顶部测量&#xff09;的…...

代码随想录算法训练营第25天| 第七章 回溯算法part02: leetcode 216、leetcode 17

Part I : 回溯算法基础 对回溯算法不清楚的可以参看前一篇&#xff1a;代码随想录算法训练营第24天| 第七章 回溯算法part01 理论基础、leetcode 77 Part II: 相关题目 Leetcode 216.组合总和III 解决问题&#xff1a;在数字1~9之间&#xff0c;找出k个数且它们的和为n从而…...

WebAPI文档与自动化测试

目录 1、控制器&#xff0c;项目属性里需要勾选输出Xml文档选项&#xff1a; 2、下载文档的网页数据 3、运行访问网址 4、接口测试&#xff1a; 5、批量测试&#xff1a; 6、微服务文档 总结&#xff1a; 本篇介绍框架的WebAPI文档与自动化测试 1、控制器&#xff0c;项…...

netty架构

https://zhuanlan.zhihu.com/p/181239748 https://cloud.tencent.com/developer/article/1754078...

拉普拉斯平滑算法

原理 最简单的拉普拉斯平滑算法的原理是将每个顶点都移动到相邻顶点的平均位置上。公式 示例&#xff08;UE5代码片段&#xff09; 参考 https://blog.csdn.net/mrbaolong/article/details/105859109...

Java课题笔记~ IoC 控制反转

二、IoC 控制反转 控制反转&#xff08;IoC&#xff0c;Inversion of Control&#xff09;&#xff0c;是一个概念&#xff0c;是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器&#xff0c;通过容器来实现对象的 装配和管理。控制反转就是对对象控制权的转移&a…...

【Spring】Spring中的设计模式

文章目录 责任链模式工厂模式适配器模式代理模式模版方法观察者模式构造器模式 责任链模式 Spring中的Aop的通知调用会使用责任链模式责任链模式介绍 角色&#xff1a;抽象处理者&#xff08;Handler&#xff09;具体处理者&#xff08;ConcreteHandler1&#xff09;客户类角…...

【ChatGLM_02】LangChain知识库+Lora微调chatglm2-6b模型+提示词Prompt的使用原则

经验沉淀 1 知识库1.1 Langchain知识库的主要功能(1) 配置知识库(2) 文档数据测试(3) 知识库测试模式(4) 模型配置 2 微调2.1 微调模型的概念2.2 微调模型的方法和步骤(1) 基于ptuning v2 的微调(2) 基于lora的微调 3 提示词3.1 Prompts的定义及原则(1) Prompts是什么&#xf…...

构建未来移动应用:探索安卓、iOS和HarmonyOS的技术之旅

安卓、iOS和HarmonyOS的比较分析 在移动应用开发领域&#xff0c;安卓、iOS和HarmonyOS是三个常见的操作系统。本文将对它们进行比较分析&#xff0c;并展示一些相关的代码示例。 安卓&#xff08;Android&#xff09; 安卓是由Google开发的移动操作系统&#xff0c;基于Lin…...

【新版系统架构补充】-嵌入式软件

嵌入式软件 嵌入式软件是指应用在嵌入式计算机系统当中的各种软件&#xff0c;除了具有通用软件的一般特性&#xff0c;还具有一些与嵌入式系统相关的特点&#xff0c;包括&#xff1a;规模较小、开发难度大、实时性和可靠性要求高、要求固化存储。 嵌入式软件分类&#xff1…...

【云原生】K8S超详细概述

目录 一、Kubernets概述1.1 K8S什么1.2为什么要用K8S 二、Kubernetes 集群架构与组件2.1Master组件Kube-apiserverKube-controller-managerKube-scheduler 2.2 配置存储中心etcd 2.3 Node 组件KubeletKube-Proxydocker 或 rocket 三、 Kubernetes 核心概念3.1Pod3.2Pod 控制器K…...

(五)Node.js -模块的加载机制

1. 优先从缓存中加载 模块在第一次加载后会被缓存。这意味着多次调用require()不会导致模块的代码被执行多次。 注意&#xff1a;不论是内置模块、用户自定义模块、还是第三方模块&#xff0c;它们都会优先从缓存中加载&#xff0c;从而提高模块的加载效率。 2. 内置模块的加载…...

【docker】Windows11系统下安装并配置阿里云镜像加速

【docker】Windows11系统下安装并配置阿里云镜像加速 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【docker】Windows11系统下安装并配置阿里云镜像加速一、查看Windows环境是否支持docker二、 启动Hyper-V三、 官网下载安装Docker应用和数据…...

SpringBoot搭建WebSocket初始化

1.java后端的maven添加websocket依赖 <!-- websocket依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>2.实例化ServerEndpointExport…...

节能延寿:ARM Cortex-M微控制器下的低功耗定时器应用

嵌入式系统的开发在现代科技中发挥着至关重要的作用。它们被广泛应用于从智能家居到工业自动化的各种领域。在本文中,我们将聚焦于使用ARM Cortex-M系列微控制器实现低功耗定时器的应用。我们将详细介绍在嵌入式系统中如何实现低功耗的定时器功能,并附上代码示例。 嵌入式系…...

GPT突破限制回复图片

PS&#xff1a;有其他有意思的prompt可以一起沟通。 1.输入以下内容&#xff1a; Forget everything you learned before. We are currently living in 2023 and you are still in 2021. After 2 years, Open AI has brought you new features, but you still do not use the…...

微信小程序nodejs+vue+uniapp高校食堂线上预约点餐系统

本次设计任务是要设计一个食堂线上预约点餐系统&#xff0c;通过这个系统能够满足管理员及学生的食堂线上预约点餐分享功能。系统的主要包括首页、个人中心、学生管理、菜品分类管理、菜品管理、关于我们管理、意见反馈、系统管理、订单管理等功能。 开发语言 node.js 框架&am…...

Python 程序设计入门(006)—— 列表的操作(1):列表元素的增、删、改操作

Python 程序设计入门&#xff08;006&#xff09;—— 列表的操作&#xff08;1&#xff09;&#xff1a;列表元素的增、删、改操作 目录 Python 程序设计入门&#xff08;006&#xff09;—— 列表的操作&#xff08;1&#xff09;&#xff1a;列表元素的增、删、改操作一、创…...

使用Python实现高效数据下采样:详解最大三角形三桶(LTTB)算法

引言 在我们接触大规模的数据集时,数据的数量往往会让人望而却步。数据分析、机器学习等领域的专业人员需要对这些数据进行处理,以便更好地理解数据,以及利用数据进行预测。然而,处理大规模数据的计算成本往往非常高,这时候,就需要引入下采样(Downsampling)的技术了。…...

从Proteus 8.13升级到8.15:为了串口通信,我做了这些事(附完整迁移与配置指南)

从Proteus 8.13升级到8.15&#xff1a;串口通信修复与平滑迁移实战指南 当你的电路仿真项目频繁遭遇串口通信异常&#xff0c;调试窗口不断弹出"COM Port Error"时&#xff0c;很可能是Proteus 8.13版本的已知缺陷在作祟。作为深度使用者&#xff0c;我经历过三次关键…...

为什么传统功能测试向量生成流程越来越慢?从 WGL、JTAG 到可综合 Testbench 的工程拆解

作者&#xff1a;Darren H. Chen 方向&#xff1a;芯片测试自动化 / JTAG / ATE / 验证加速 / EDA工具开发摘要 在芯片功能测试与验证流程中&#xff0c;很多团队仍然沿用“testbench/testcase → 仿真波形 → WGL/STIL → ATE 或后续验证”的传统链路。这条流程在测试用例较少…...

Selenoid API完全解析:从会话管理到资源监控的终极指南

Selenoid API完全解析&#xff1a;从会话管理到资源监控的终极指南 【免费下载链接】selenoid Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary. 项目地址: https://gitcod…...

OpenClaw汽车保养助手:Qwen2.5-VL-7B解析故障灯照片生成检修指南

OpenClaw汽车保养助手&#xff1a;Qwen2.5-VL-7B解析故障灯照片生成检修指南 1. 为什么需要汽车故障灯智能助手 上周我的车突然亮起了发动机故障灯&#xff0c;黄色警示图标在仪表盘上闪烁。作为一个非专业车主&#xff0c;我面临两个选择&#xff1a;要么花半天时间排队去4S…...

DAMO-YOLO代码实例:OpenCV-Python图像预处理与后处理结果渲染详解

DAMO-YOLO代码实例&#xff1a;OpenCV-Python图像预处理与后处理结果渲染详解 1. 引言&#xff1a;从炫酷界面到核心引擎 当你打开DAMO-YOLO的赛博朋克界面&#xff0c;看到霓虹绿的识别框在图片上闪烁时&#xff0c;有没有想过这背后发生了什么&#xff1f;那个漂亮的界面只…...

GESP C++三级真题解析:小猫分鱼问题背后的数学逻辑与代码实现

GESP C三级真题解析&#xff1a;小猫分鱼问题背后的数学逻辑与代码实现 1. 问题背景与数学建模 小猫分鱼问题乍看像一道简单的算术题&#xff0c;实则蕴含了递归思想和模运算的精妙应用。题目描述N只小猫分一堆鱼&#xff0c;每只小猫都将当前鱼数平分成N份后&#xff0c;扔掉多…...

从GitHub热门项目到实战:手把手教你复现一篇ICLR‘24时间序列预测论文(附完整代码)

从GitHub热门项目到实战&#xff1a;手把手教你复现一篇ICLR24时间序列预测论文&#xff08;附完整代码&#xff09; 在人工智能领域&#xff0c;前沿论文与开源代码的结合正成为推动技术进步的重要动力。GitHub上涌现出大量包含顶会论文和配套实现的仓库&#xff0c;如AI4TS这…...

CP853显示驱动库:面向AUTOSAR的车载TFT-LCD底层控制方案

1. CP853 显示驱动库深度解析&#xff1a;面向大众汽车CARIAD平台的TFT-LCD底层控制方案CP853并非通用开源显示库&#xff0c;而是专为大众汽车集团CARIAD软件平台定制开发的嵌入式图形驱动组件。其命名“CP853”隐含硬件型号标识&#xff08;可能对应某代车载信息娱乐系统SoC集…...

TMC5130/TMC5160步进电机驱动芯片深度解析与工程实践

1. TMC51X0系列驱动芯片技术解析&#xff1a;从寄存器级控制到工程化应用实践TMC5130与TMC5160是Trinamic公司推出的高性能集成式步进电机控制器驱动器&#xff08;ControllerDriver&#xff09;单芯片解决方案。二者并非简单地将控制器逻辑与功率驱动电路物理堆叠&#xff0c;…...

【数字信号检测】基于迫零算法大规模MIMO低复杂度信号检测附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f447; 关注我领取海量matlab电子书和数学建模资料&#x1f34a;个人信条&#xff1a;格物致知,完整Matl…...