c++基础——变量

目录

数据类型

 布尔类型

整数类型

 字符类型

 浮点类型

 无类型

定义变量

常量

---------------------------------------------------------------------------------------------------------------------------------

数据类型

  1. 基础类型(括号内为代表关键词/代表类型)
    1. 无类型/void 型 (void)
    2. (C++11 起)空指针类型 (std::nullptr_t)
    3. 算术类型
      1. 整数类型 (int)
      2. 布尔类型/bool 型 (bool)
      3. 字符类型 (char)
      4. 浮点类型 (float,double)

 布尔类型

一个 bool 类型的变量取值只可能为两种:true 和 false

一般情况下,一个 bool 类型变量占有1字节(一般情况下,1字节 = 8位)的空间。

整数类型

整数类型一般按位宽有 5 个梯度:char,short,int,long,long long.

C++ 标准保证 1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

由于历史原因,整数类型的位宽有多种流行模型,为解决这一问题,C99/C++11 引入了,定宽整数类。

int 类型的大小

在 C++ 标准中,规定 int 的位数 至少 为16位。

事实上在现在的绝大多数平台,int 的位数均为32位。

对于 int 关键字,可以使用如下修饰关键字进行修饰:

符号性:

  • signed:表示带符号整数(默认);
  • unsigned:表示无符号整数。

大小:

  • short:表示 至少16位整数;
  • long:表示 至少32位整数;
  • (C++11 起)long long:表示 至少64位整数。

 字符类型

分为“窄字符类型”和“宽字符类型”,由于算法竞赛几乎不会用到宽字符类型,故此处仅介绍窄字符类型。

窄字符型位数一般为  位,实际上底层存储方式仍然是整数,一般通过 ASCII 编码 实现字符与整数的一一对应,有如下三种:

  • signed char:有符号字符表示的类型,表示范围在-128~-127之间。
  • unsigned char:无符号字符表示的类型,表示范围在0~255之间。
  • char 拥有与 signed char 或 unsigned char 之一相同的表示和对齐,但始终是独立的类型。

    char 的符号性取决于编译器和目标平台:ARM 和 PowerPC 的默认设置通常没有符号,而 x86 与 x64 的默认设置通常有符号。

    GCC 可以在编译参数中添加 -fsigned-char 或 -funsigned-char 指定将 char 视作 signed char 或 unsigned char,其他编译器请参照文档。需要注意指定与架构默认值不同的符号有可能会破坏 ABI,造成程序无法正常工作。浮点类型

 浮点类型

用于存储“实数”(注意并不是严格意义上的实数,而是实数在一定规则下的近似),包括以下三种:

  • float:单精度浮点类型。如果支持就会匹配 IEEE-754 binary32 格式。
  • double:双精度浮点类型。如果支持就会匹配 IEEE-754 binary64 格式。
  • long double:扩展精度浮点类型。如果支持就会匹配 IEEE-754 binary128 格式,否则如果支持就会匹配 IEEE-754 binary64 扩展格式,否则匹配某种精度优于 binary64 而值域至少和 binary64 一样好的非 IEEE-754 扩展浮点格式,否则匹配 IEEE-754 binary64 格式。

因为 float 类型表示范围较小,且精度不高,实际应用中常使用 double 类型表示浮点数。

另外,浮点类型可以支持一些特殊值:

  • 无穷(正或负):INFINITY.
  • 负零:-0.0,例如 1.0 / 0.0 == INFINITY,1.0 / -0.0 == -INFINITY.
  • 非数(NaN):std::nan,NAN,一般可以由 0.0 / 0.0 之类的运算产生。它与任何值(包括自身)比较都不相等,C++11 后可以 使用 std::isnan 判断一个浮点数是不是 NaN.

 无类型

void 类型为无类型,与上面几种类型不同的是,不能将一个变量声明为 void 类型。但是函数的返回值允许为 void 类型,表示该函数无返回值。

定义变量

简单地说,定义一个变量,需要包含类型说明符(指明变量的类型),以及要定义的变量名。

例如,下面这几条语句都是变量定义语句。

int a;
double b;
char c = 'c';

常量

常量是固定值,在程序执行期间不会改变。

常量的值在定义后不能被修改。定义时加一个 const 关键字即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值