当前位置: 首页 > 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)的技术了。…...

软件PWM库原理与工程实践:轻量级非阻塞式脉宽调制实现

1. PWM库技术解析&#xff1a;面向嵌入式工程师的底层实现与工程化应用1.1 库定位与核心价值PWM&#xff08;Pulse Width Modulation&#xff09;库是一个轻量级、非阻塞式脉宽调制信号生成工具&#xff0c;专为资源受限的微控制器平台设计。其核心价值不在于替代硬件PWM外设&a…...

obsidian claudian 插件配置使用minimax模型

首先&#xff0c;打开.claude/settings.json文件 sudo gedit .claude/settings.json参考官网配置 “ANTHROPIC_BASE_URL”: “https://api.minimaxi.com/anthropic”, “ANTHROPIC_AUTH_TOKEN”: “MINIMAX_API_KEY”, 等参数然后在claudian插件中在配置一遍&#xff0c;即可正…...

Win11安装Claude-Code出现报错问题解决

现象在安装Claude-Code的时候&#xff0c;执行 irm https://claude.ai/install.ps1 | iex在开启科学上网的前提下&#xff0c;出现以下报错以管理员命令直接打开 PowderShell 输入 winget install Anthropic.ClaudeCode&#xff0c;问题解决&#xff01;...

UI UX PRO MAX怎么做

4月6日 ui ux 能够自动设计项目...

虚拟机检测工具VMDE深度解析与实战指南

虚拟机检测工具VMDE深度解析与实战指南 【免费下载链接】VMDE Source from VMDE paper, adapted to 2015 项目地址: https://gitcode.com/gh_mirrors/vm/VMDE 揭示VMDE的核心价值 在虚拟化技术广泛应用的今天&#xff0c;准确识别系统运行环境的真实性变得至关重要。虚…...

零信任架构下的企业数据安全防护体系设计与实践

1. 零信任架构&#xff1a;企业数据安全的新范式 过去十年我见过太多企业安全事件&#xff0c;根源往往在于传统边界防护的失效。某次给金融客户做安全评估时发现&#xff0c;他们花重金部署的防火墙就像个筛子——攻击者通过一个普通员工的钓鱼邮件就长驱直入&#xff0c;最终…...

PADS Layout 设计规则优化:从安全间距到布线效率的实战指南

1. PADS Layout设计规则入门&#xff1a;为什么它比你想的更重要 刚接触PADS Layout的工程师常犯的一个错误&#xff0c;就是直接开始画板子&#xff0c;完全跳过设计规则设置。这就像开车不系安全带——短途可能没事&#xff0c;但迟早要出事。我见过太多因为间距设置不当导致…...

UART 入门指南(Linux新手版)

UART 入门指南&#xff08;Linux新手版&#xff09; 适用对象&#xff1a;嵌入式/电子/通信初学者 目录 什么是 UARTUART 工作原理硬件接口与接线通信参数详解编程示例常见问题与调试 1. 什么是UART 1.1 基本定义 UART 的全称是 Universal Asynchronous Receiver/Transmitte…...

Fast-Check高级技巧:如何构建自定义Arbitrary生成器的完整指南

Fast-Check高级技巧&#xff1a;如何构建自定义Arbitrary生成器的完整指南 【免费下载链接】fast-check Property based testing framework for JavaScript (like QuickCheck) written in TypeScript 项目地址: https://gitcode.com/gh_mirrors/fa/fast-check Fast-Chec…...

019驱动调试与性能优化:printk、动态调试、ftrace、perf工具链

从一次诡异的I2C超时说起 上周排查一个车载IVI系统的触摸屏失灵问题&#xff0c;现象是冷启动后触摸完全无响应&#xff0c;但系统日志里没有任何错误信息。用逻辑分析仪抓I2C波形发现&#xff0c;主机发了START信号后SCL就被拉低了——典型的从设备忙状态。但驱动代码里对应的…...