3.2 编译器支持的常见 C++变量类型

学如逆水行舟,不进则退

心似平原跑马,易放难收

3.2 编译器支持的常见 C++变量类型

C++支持的类型

在这里插入图片描述

3.2.1 使用 bool 变量存储布尔值

C++提供了一种专为存储布尔值 true 和 false 而创建的类型, 其中 true 和 false 都是保留的 C++关键字。

例如:bool alwaysOnTop = false;

3.2.2 使用 char 变量存储字符

char 变量用于存储单个字符,下面是一个声明示例: char userInput = 'Y'; // initialized char to 'Y'

3.2.3 有符号整数和无符号整数的概念

符号表示正或负。

符 号 位 必 须 是 最 高 有 效 位 ( most-sigificant-bit , MSB ), 因 为 最 低 有 效 位( least-significant-bit)需要用于表示小于 2 的数字。当 MSB 包含符号信息时,假定 0 表示正, 1 表示负,而其他位包含绝对值。

3.2.4 有符号整型 short、 int、 long 和 long long

应根据变量可能存储的最大值给它指定合适的类型。

声明有符号类型的变量很简单,如下所示:

short int gradesInMath = -5; // not your best score
int moneyInBank = -70000; // overdraft
long populationChange = -85000; // reducing population
long long countryGDPChange = -70000000000;

3.2.5 无符号整型 unsigned short、 unsigned int、 unsigned long 和unsigned long long

不同于相应的有符号类型,无符号整型变量不能包含符号信息,因此,它们的最大取值为相应有符号类型的两倍。

声明无符号类型变量也很简单,如下所示:

unsigned short int numColorsInRainbow = 7;
unsigned int numEggsInBasket = 24; // will always be positive
unsigned long numCarsInNewYork = 700000;
unsigned long long countryMedicareExpense = 70000000000;

如果预期变量的取值不会为负数,就应将其类型声明为无符号的。

3.2.6 选择正确的数据类型以免发生溢出错误

要选择合适的数值类型,否则会发生溢出的情况,例如:

#include <iostream>
using namespace std;

int main()
{
    unsigned short uShortValue = 65535;
    cout << "Incrementing unsigned short " << uShortValue << " gives: ";
    cout << ++uShortValue << endl;

    short signedShort = 32767;
    cout << "Incrementing signed short " << signedShort << " gives: ";
    cout << ++signedShort << endl;

    return 0;
}

运行结果如下:

在这里插入图片描述

从上面代码可以看出,无意的溢出导致应用程序的行为不可预测。

3.2.7 浮点类型 float 和 double

您可能在学校学过,浮点数就是实数,可以是正,也可以是负,还可以包含小数值。因此,如果要使用 C++变量存储 pi( 22/7)的值,就应将其声明为浮点类型。

要声明一个可存储小数值的float 变量,可像下面这样做: float pi = 3.14;

要声明双精度浮点数( double)变量,可像下面这样做: double morePrecisePi = 22.0 / 7;

C++14 新增了用单引号表示的组块分隔符( chunking separator)。使用这种分隔符可提高代码的可读性,如下面的初始化语句所示 :

int moneyInBank = -70'000; // -70000
long populationChange = -85'000; // -85000
long long countryGDPChange = -70'000'000'000; // -70 billion
double pi = 3.141'592'653'59; // 3.14159265359
GDPChange = -70'000'000'000; // -70 billion
double pi = 3.141'592'653'59; // 3.14159265359
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值