C++学习之旅——C++中数据类型所占的字节
2013-10-12 21:52
489 查看
先来列一下C++的数据类型:
整型:int,long。这两个还分signed(有符号)和unsigned(无符号)的,当然有符号和无符号所占字节大小是一样的,就不管他了。
布尔型:bool
字符型:char,这两个还分signed(有符号)和unsigned(无符号)的,不过没多大用,用在转化为数值时就用区别。
浮点型:float,double,long double。
这只能上代码验证了,貌似机子不同数据类型所占大小也不同,太威武了,我就检查下我这个32位windows系统电脑吧。我用的IDE是Code::Blocks,发现挺好用的,主要是工程文件小,不像vs2010建个工程就大得很,哥这小硬盘吃不消啊(题外话)。
先看整型的吧,代码如下:
结果显示:
int:4
long:4
int和long都是占4个字节(即32位)。
其他数据类型验证吧上面代码数据类型替换下就是了,得出下面的结果:
bool:1
char:1
wchar_t:2
float:4
double:8
特别要注意的时,对于指针类型,都占4个字节,指针指向的是一个地址,地址是int类型的,32位操作系统就是4字节。当然如果是64位操作系统那就是8字节了。
此外,int这个类型占操作系统一个内存单元大小。早先16位操作系统一个内存单元是16位,所以是2个字节;32位系统一个内存单元是是32位,所以是4字节;64位操作系统一个内存单元是16位,故占8个字节。
另外还需要注意,以下情况为影响分配情况:
1、函数所占字节
2、内存变量对齐方式
详情请看下两篇文章
整型:int,long。这两个还分signed(有符号)和unsigned(无符号)的,当然有符号和无符号所占字节大小是一样的,就不管他了。
布尔型:bool
字符型:char,这两个还分signed(有符号)和unsigned(无符号)的,不过没多大用,用在转化为数值时就用区别。
浮点型:float,double,long double。
这只能上代码验证了,貌似机子不同数据类型所占大小也不同,太威武了,我就检查下我这个32位windows系统电脑吧。我用的IDE是Code::Blocks,发现挺好用的,主要是工程文件小,不像vs2010建个工程就大得很,哥这小硬盘吃不消啊(题外话)。
先看整型的吧,代码如下:
int:4
long:4
int和long都是占4个字节(即32位)。
其他数据类型验证吧上面代码数据类型替换下就是了,得出下面的结果:
bool:1
char:1
wchar_t:2
float:4
double:8
特别要注意的时,对于指针类型,都占4个字节,指针指向的是一个地址,地址是int类型的,32位操作系统就是4字节。当然如果是64位操作系统那就是8字节了。
此外,int这个类型占操作系统一个内存单元大小。早先16位操作系统一个内存单元是16位,所以是2个字节;32位系统一个内存单元是是32位,所以是4字节;64位操作系统一个内存单元是16位,故占8个字节。
另外还需要注意,以下情况为影响分配情况:
1、函数所占字节
2、内存变量对齐方式
详情请看下两篇文章
相关文章推荐
- 惭愧,直到今天才对“数据类型字节对齐”有个深入的了解,对以前读书时学习的知识没有深刻理解啊 C/C++学习 C/C++学习 漫漫人生,澎湃的经历不断促使改变自己,永恒不变的是一颗骄傲的心!
- C++学习第5篇-变量范围及其他数据类型
- C/C++基本数据类型所占字节数
- Dev-C++下基本数据类型学习小结
- Object c/swift,java,c/c++在32位和64位各个平台上基本数据类型 所占有的字节数
- C++的学习笔记(第二章:基本数据类型与表达式)
- C++学习笔记--数据类型
- C++学习——数据类型与运算符
- C++学习笔记:不用sizeof判断int类型占用几个字节
- C++学习笔记 基本数据类型
- C\C++ 程序员从零开始学习Android - 个人学习笔记(四) - java基础 - 数据类型、变量、字符串、数组
- C++学习-基本数据类型
- c++数据类型所占字节书 sizeof的用法
- C和C++中的主要数据类型和字节大小
- 【C++学习笔记】对float型数据类型和double型数据的理解
- C++简单学习(Part1_lecture 2)(数据类型、变量类型、变量作用域、常量、修饰符类型)
- C/C++基本数据类型所占字节数
- c++学习(一):新的数据类型——字符串类型
- C/C++中各数据类型的字节长度
- C/C++基本数据类型所占字节数