C++基本数据类型和内存映像(1)

什么是数据类型?
数据类型是用来定义变量的值的类型,每种数据类型对应特定的字节数。例如在32位操作系统上,int类型的变量就占用4个字节的内存单元,而double类型占用8个字节的内存单元。

字节是什么?
字节是内存编址的最小单位,因为语言必须支持对一个单元(基本数据类型或混合数据类型的变量或对象)进行地址运算,而这个地址必须是有效的内存单元地址,所以最小对象(包括空对象)都会占用一个字节的内存空间。

标准C++的数据类型
标准C语言支持基本(内建)数据模型有intlongfloatdoublecharvoid及和signedunsigned*&的组合。标准C++增加了bool类型,同时还增加了两个内置的符号常量truefalse(关键字)。
void是“空类型”(无值型),意思是这种类型的大小无法确定。显然不存在void类型的对象,所以也就不能声明void类型的对象或使用sizeof()运算符计算void类型占用的内存空间。这是因为C++不能对一个未知大小的对象直接操作。void通常用于定义函数的返回值、参数列表(无参)或者void指针,void指针可以用作通用指针,因为它可以指向任意类型的对象。

注意:虽然bool类型的变量只存在两种可能的值:truefalse,按理说只需要一个bit就可以表示了。但是字节是内存编址的最小单位,而从计算机内存中提取一个变量的值是通过其地址进行的,所以bool变量也占用了1字节内存,即sizeof(bool)等于1,浪费了7bit。

标准C语言中没有bool类型,但是某些实现通过库提供了其映射,并且定义了相应的常量,例如:

typedef int BOOL
#define TRUE  1
#define FALSE 0

在标准C中,int为默认类型,也就是说如果你不明确指定函数的形参类型或函数的返回值类型,则他们的类型为int,而标准C++不支持默认类型,但是模板中有“默认参数类型概念”。

注意:无论是C程序还是C++程序我们都不要使用默认数据类型,一定要指出函数每一个形参的类型和返回值类型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值