C++自学06:sizeof运算符
sizeof是一个单目运算符,优先级为2,它的用途是:由于数据类型随系统运行环境可能导致不同,因此要知道一个变量在所有情况下的大小是很困难的,所以C定义了编译时运算符,sizeof
sizeof(操作数);
1.若操作数是char,unsigned char ,signed char,则返回值一定是1,因为ANSI C规定字符类型就是1个字节,下面三种写法都会打印出1
printf("%d", sizeof(char));
printf("%d", sizeof(unsigned char));
printf("%d", sizeof(signed char));
2.除了1中的类型之外,其他的类型ANSI C没有规定,所以返回值依赖于具体的实现
3.当操作数是指针时,sizeof依赖于具体的编译器
4.当操作数是数组时,返回值是数组占用的总内存字节数,下面示例会打印出16
int a[] = {1,2,3,4};
printf("%d", sizeof(a));
5.当操作数是联合类型,则返回该联合体内最大的那个成员类型所占用的字节数,下面的示例会打印出8
union MyUnion
{int a;double b;char c;
};
MyUnion ys;
printf("%d",sizeof(ys));
6.当操作数是结构体时,则返回的是该结构体所有成员类型+不同编译器考虑对齐的情况,也就是说,最终还是取决于不同的编译器,例如下面的代码在我的visual studio 2017下打印出8
struct MyStruct
{char a[3];int b;
};
MyStruct ys;
printf("%d",sizeof(ys));
总结:总体来说,sizeof会返回操作数所占了内存多少个字节
C++自学06:sizeof运算符相关推荐
- C++ sizeof 运算符的使用
sizeof 是C++ 中 唯一的一个带字母的运算符, sizeof 的功能: 返回指定的数据类型或者表达式值的数据类型在内存中所占的字节数. sizeof 运算符的使用 1 sizeof(类型) ...
- c++中利用sizeof运算符计算结构体大小问题探讨
c++中提供的sizeof运算符可以方便得计算出内置类型的字节数大小,比如sizeof(int),sizeof(char),sizeof(double)的返回值分别为4,1,8,这是很容易理解的.但是 ...
- python sizeof函数_C++ sizeof 运算符 | 菜鸟教程
C++ sizeof 运算符 sizeof 是一个关键字,它是一个编译时运算符,用于判断变量或数据类型的字节大小. sizeof 运算符可用于获取类.结构.共用体和其他用户自定义数据类型的大小. 使用 ...
- C语言sizeof运算符
C语言并没有规定各种类 占用存储空间的大小,而是根据操作系统的位数来确定 同一种数据类型,在不同的编译系统中所占空间不一定相同 比如,在16位的编译系统中,int类型占用2个字节,而在32位的编译系统 ...
- c语言 sizeof size_t,C/C++中的sizeof运算符和size_t类型的详解
sizeof的作用 sizeof是c的运算符之一,用于获取操作数被分配的内存空间,以字节单位表示. 这里指的操作数,可以是变量,也可以是数据类型,如int,float等.所以就可以通过它来获取本地c库 ...
- sizeof是c语言的一种运算符,C语言位运算和sizeof运算符详解
位运算和sizeof运算符 C语言中提供了一些运算符可以直接操作整数的位,称为位运算,因此位运算中的操作数都必须是整型的.位运算的效率是比较高的,而且位运算运用好的话会达到意想不到的效果.位运算主要有 ...
- C语言指针、数组与sizeof运算符
指针.数组与sizeof运算符 指针.数组与sizeof运算符 指针.数组与sizeof运算符 Sizeof是C语言的一个运算符,sizeof的作用是用来返回()里面的变量或者数据类型占用的内存字节数 ...
- C++ Prime:sizeof运算符
sizeof运算符的结果部分地依赖于其作用的类型: 对char或者类型为char的表达式执行sizeof运算结果得1: 对引用类型执行sizeof运算得到被引用对象所占空间的大小: 对指针执行size ...
- sizeof运算符运算结果小汇
文章目录 sizeof运算符的结果部分地依赖于其作用的类型 sizeof运算符的结果部分地依赖于其作用的类型 对char或者类型为char的表达式执行sizeof运算,结果得1 对引用类型执行size ...
最新文章
- Python中的三目运算符------if else 同行
- c语言x1=abc什么意思,c语言起步(课件)2.1
- AttributeError: module ‘matplotlib’ has no attribute ‘artist’
- Android控件-GridView
- 深度学习核心技术精讲100篇(七十七)-主流推荐引擎技术及优缺点分析
- 前端知识点梳理(一)
- Exchange2003-2010迁移系列之二,迁移前的准备工作(上)
- Xshell中用./startup.sh启动时候提示权限不够
- 揭秘Facebook官方底层C++函数Folly
- php程序员 合川_重庆PHP程序员工资如何?
- linux cups打印中文,Linux使用cups进行打印
- 查看数据库信息(一)
- zigbee设备入网流程分析
- 从数据库读取数据,该数据作为参数传入万得的wsd命令中
- svchost -k DcomLaunch CPU占有过高解决方法
- 使用PE启动U盘安装pfSense
- 奥维互动地图 墨卡托(Mercator)投影 最新资源
- 用户注册——注册信息保存到数据库
- 俄罗斯没有高端芯片,为什么却能造出一流武器?
- linux rar无法运行,linux服务器无法解压rar文件的解决方法
热门文章
- linux如何判断网线插入_快速鉴定网线质量的常用方法
- 基于matlab的2ask频带传输系统仿真与性能分析,基于MATLAB的2ASK频带传输系统仿真与性能分析汇总...
- php和ajax实现聊天功能,怎么在PHP项目中使用jquery与ajax实现一个即时聊天功能
- cad文字插件_超好用的4个CAD应用程序,让你提升工作幸福感,裂墙推荐
- Git安装后安装目录改变
- Linux 如何开启SFTP
- The valid characters are defined in RFC 7230 and RFC 3986问题
- vue 运行报错Module build failed: Error: Node Sass does not yet support your current environment: Windows
- Android开发笔记(九十四)图片的基本加工
- singft 函数 matlab,(新)信号与系统MATLAB实验全.doc