sizeof的用法详解
2023-04-18 16:16:16 时间
定义
sizeof是C语言和C++的关键字和操作符,sizeof 不是操纵符,也不是函数,因为在运行阶段没有它,它没有被编译成机器指令。它的作是用来计算变量(或数据类型)在当前系统中占用内存的字节数。sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。
sizeof语法
sizeof有三种语法形式:
- sizeof (object); //sizeof (对象)
- sizeof object; //sizeof 对象
- sizeof (数组)
- sizeof (type_name); //sizeof (类型)
对象可以是各种类型的变量,以及表达式(一般sizeof不会对表达式进行计算)。
sizeof对对象要求内存大小,最终都是转换为对对象的数据类型进行求值。
sizeof (表达式); //值为表达式最终结果的数据类型的大小
代码样例
#include<bits/stdc++.h>
using namespace std;
int main(){
char c;
int str[]={4,6,9,3,2,9,3,5,7},n;
n=sizeof(c);//求对象的大小
cout<<n<<endl;
n=sizeof c;
cout<<n<<endl;
n=sizeof(str);//求数组的大小
cout<<n<<endl;
n=sizeof str;
cout<<n<<endl;
n=sizeof(3+1.265);//求表达式的大小
cout<<n<<endl;
return 0;
}
输出结果
sizeof在数组中的运用
当sizeof作用于数组时,求取的是数组所有元素所占用的大小也就是数组所占用的内存字节数。
注意
用sizeof计算数组的大小时,不管数组中是否存在数据,sizeof都是根据数组的大小进行计算数组所占的空间大小,而不是根据数组内的数据的个数。
同时需要注意的是如果想要知道数组内数据的个数时,用数组空间的大小除一个数据的大小,sizeof(数组名) / sizeof(数组元素)
代码样例
#include<bits/stdc++.h>
using namespace std;
int main(){
int str[10]={1,5,6,3,9},n;
cout<<"数组所占的空间大小:"<<endl;
n=sizeof(str);
cout<<n<<endl;
cout<<"数组中能容纳的数据个数:"<<endl;
n=sizeof(str)/sizeof(str[0]);
cout<<n<<endl;
return 0;
}
输出结果
数组所占的空间大小:
40
数组中能容纳的数据个数:
10
字符数组的大小不用sizeof计算,一般都是用strlen计算。
关于sizeof关键字的介绍就到这,希望对各位有帮助,谢谢大家。
相关文章
- 一文带你搞定TCP重传
- 大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch
- Redis布隆过滤器
- 全网最详细的Mybatis介绍和基本使用
- k好数(动态规划)
- 【收藏】Oracle 数据库如何基于 RMAN 备份至 COS对象存储解决方案?
- 基于FPGA的数字识别-实时视频处理的定点卷积神经网络实现
- 介绍一款Oracle的利器小工具-SQLcl
- 微服务架构解决了什么问题
- 以鄱阳湖为例对土地覆被进行分类以测量萎缩的湖泊(三)
- EDR“数据黑匣子”撬动数百亿市场,众多产业链大咖玩家已热身入场
- 安全基础知识 | VLAN基础知识详细介绍
- Kafka 性能实践知多少
- mysql的三层体系结构
- 一文搞懂 Redis 分布式锁
- 数据库知识学习,数据库设计优化攻略(一)
- Bootstrap Blazor 实战 10分钟编写数据库维护项目
- 蛋白家族信息查询数据库
- EasyGBS在网页流量统计的地方出现统计不准的问题优化
- ClickHouse 布道者郭炜:讨论ClickHouse的人需要了解它的设计理念