C++数据类型

C++数据类型

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。

C++中定义了一套包括算术类型(arithmetic type)和空类型(void)在内的基本数据类型。其中算术类型包含了字符、整型数、布尔值和浮点数。空类型不对应具体的值,仅在一些特殊情况的场合下使用。例如,当函数不返回任何值时,使用空类型做为返回值类型。

算术类型

算术类型分为两类:整型(arithmetic type, 包括字符型和布尔型在内)和浮点型。

算术类型的尺寸(也就是该类型所占的比特数)在不同机器上有所差别,
以下列出了C++标准尺寸的最小值。
在这里插入图片描述
布尔类型(bool)的取值是真(true)或者假(false)。

带符号类型和无符号类型

除去布尔型和扩展的字符型之外,其他整型可以化分为带符号的无符号的两种。带符号的了类型可以表示正数、负数和零,无符号类型则仅能表示大于零的值。

类型 int、short、long 和 long long 都是带符号的,通过在这些类型名前加unsigned 就可以得到无符号类型,例如 unsigned long 。类型 unsigned int 可以缩写为 unsigned 。

与其他类型不同的,字符型也被分为三种:char、signed char 和 unsigned char。特别需要注意的是:类型 char 和类型 signed char 并不一样。尽管字符型有三种,但是字符的表现形式却只有两种:带符号的和无符号的。类型 char 实际上会表现成上述两种形式的一种,具体是哪种有编译器决定。

无符号类型中所有比特都用来存储值,例如,8比特的 unsigned char 可以表示 0 到 255 之间的值。

C++并没有规定带符号类型应如何表示,但是约定了在表示范围内正值和负值的量应该平衡。因此,8比特的 signed char 理论上应该可以表示 -127 到 127 区间内的值,大多数现代计算机将实际的表示范围定位 -128 到127。

typedef 声明

您可以使用 typedef 为一个已有的类型取一个新的名字。下面是使用 typedef 定义一个新类型的语法:

typedef type newname;

例如,下面的语句会告诉编译器,feet 是 int 的另一个名称:

typedef int feet;

现在,下面的声明是完全合法的,它创建了一个整型变量 distance:

feet distance;

枚举类型

枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。

创建枚举,需要使用关键字 enum。枚举类型的一般形式为:

enum 枚举名{ 
     标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
} 枚举变量;
    

如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始。

例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 “blue”。

enum color { red, green, blue } c;
c = blue;

默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。

enum color { red, green=5, blue };

在这里,blue 的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1,但 red 的值依然为 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值