C++基本数据类型和内存映像(1)
2016-04-06 14:26
344 查看
什么是数据类型?
数据类型是用来定义变量的值的类型,每种数据类型对应特定的字节数。例如在32位操作系统上,
字节是什么?
字节是内存编址的最小单位,因为语言必须支持对一个单元(基本数据类型或混合数据类型的变量或对象)进行地址运算,而这个地址必须是有效的内存单元地址,所以最小对象(包括空对象)都会占用一个字节的内存空间。
标准C++的数据类型
标准C语言支持基本(内建)数据模型有
注意:虽然bool类型的变量只存在两种可能的值:
标准C语言中没有
在标准C中,
注意:无论是C程序还是C++程序我们都不要使用默认数据类型,一定要指出函数每一个形参的类型和返回值类型。
数据类型是用来定义变量的值的类型,每种数据类型对应特定的字节数。例如在32位操作系统上,
int类型的变量就占用4个字节的内存单元,而
double类型占用8个字节的内存单元。
字节是什么?
字节是内存编址的最小单位,因为语言必须支持对一个单元(基本数据类型或混合数据类型的变量或对象)进行地址运算,而这个地址必须是有效的内存单元地址,所以最小对象(包括空对象)都会占用一个字节的内存空间。
标准C++的数据类型
标准C语言支持基本(内建)数据模型有
int、
long、
float、
double、
char、
void及和
signed、
unsigned、
*、
&的组合。标准C++增加了
bool类型,同时还增加了两个内置的符号常量
true和
false(关键字)。
void是“空类型”(无值型),意思是这种类型的大小无法确定。显然不存在
void类型的对象,所以也就不能声明
void类型的对象或使用
sizeof()运算符计算
void类型占用的内存空间。这是因为C++不能对一个未知大小的对象直接操作。
void通常用于定义函数的返回值、参数列表(无参)或者
void指针,
void指针可以用作通用指针,因为它可以指向任意类型的对象。
注意:虽然bool类型的变量只存在两种可能的值:
true和
false,按理说只需要一个bit就可以表示了。但是字节是内存编址的最小单位,而从计算机内存中提取一个变量的值是通过其地址进行的,所以
bool变量也占用了1字节内存,即
sizeof(bool)等于1,浪费了7bit。
标准C语言中没有
bool类型,但是某些实现通过库提供了其映射,并且定义了相应的常量,例如:
typedef int BOOL #define TRUE 1 #define FALSE 0
在标准C中,
int为默认类型,也就是说如果你不明确指定函数的形参类型或函数的返回值类型,则他们的类型为
int,而标准C++不支持默认类型,但是模板中有“默认参数类型概念”。
注意:无论是C程序还是C++程序我们都不要使用默认数据类型,一定要指出函数每一个形参的类型和返回值类型。
相关文章推荐
- c++ 小项目 大数四则运算(整数)
- MI/多重继承 & 虚继承
- C++递归实现strlen函数功能
- 同花顺C++笔试
- c++ 队列Queue的实现 - 练习题
- 【C语言】模拟实现库函数strcat函数
- C语言打印16进制出现0xffffff现象的问题剖析!
- c语言自评/
- C++之重载函数
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的配套类型,C风格字符串问题和处理区别
- C++ 二维码生成
- C++之指针常量和常量指针
- C语言执行程序一闪而过的问题
- 用牛顿迭代法和二分法求方程的根【C语言】
- c++ 中__declspec 的用法
- C语言学习-指针-3.24
- C语言函数-笔记-2016-3-28
- C语言 有/无符号数 需要注意的问题
- 《高质量C++/C编程指南》读书笔记一
- C++ 类的静态成员用法