变量与基础类型

分类: 基础语法 · 更新时间 2026-5-27 21:40:57

以下所有描述的都指当前比赛环境。

常见数据类型/变量类型

有符号整数 无符号整数
3232 intsigned unsignedunsigned int
6464 long long unsigned long long
  • 小数(浮点数):
    • 单精度:float
    • 双精度:double
    • 扩展精度:long double
  • 字符:char
  • 布尔:bool
  • 字符串:string

变量定义规则

变量定义方法:

int a;       //变量类型 变量名;
int b = 0;   //变量类型 变量名 = 初始值;
int c, d, e; //变量类型 变量名1, 变量名2, 变量名3;

变量命名规则:

  • 字母或下划线开头
  • 只能包含字母、数字、下划线
  • 不能是 C++ 关键字

数据类型对应的范围

  • bit:位(11 个二进制位),计算机储存的最小单位
  • Byte:字节(88 个连续的二进制位),计算机储存的基本单位
  • 换算方法:
    • 11 B(Byte) = 88 bits
    • 11 KB(KiB) = 10241024 B(2102^{10} B)
    • 11 MB(MiB) = 10241024 KB
    • 11 GB(GiB) = 10241024 MB
    • 11 TB(TiB) = 10241024 GB
    • 11 PB(PiB) = 10241024 TB
数据类型名 内容(一般情况) 占用内存大小 能储存的范围 scanf/printf 标识符(g++)
int/signed 3232 位整数 44 Bytes 2312311-2^{31}\sim 2^{31}-1,约 2×1092×109-2\times 10^9\sim 2\times 10^9 %d/%d
long long 6464 位整数 88 Bytes 2632631-2^{63}\sim 2^{63}-1,约 9×10189×1018-9\times 10^{18}\sim 9\times 10^{18} %lld/%lld
char 字符 11 Byte 至少能储存 01270\sim 127,常见范围为 128127-128\sim 127 %c/%c
float 单精度浮点数 44 Bytes 3.4×10383.4×1038-3.4\times 10^{38}\sim 3.4\times 10^{38},有效数字 676\sim 7 %f/%f
double 双精度浮点数 88 Bytes 1.7×103081.7×10308-1.7\times 10^{308}\sim 1.7\times 10^{308},有效数字 151615\sim 16 %lf/%f
unsigned int 无符号 3232 位整数 44 Bytes 023210 \sim 2^{32}-1,约 04×1090 \sim 4\times 10^9 %u/%u
unsigned long long 无符号 6464 位整数 88 Bytes 026410 \sim 2^{64}-1,约 01.8×10190 \sim 1.8\times 10^{19} %llu/%llu

类型转换

  • 用一个目标类型的数参与运算(必须是更优先的类型):
    • 1.0 * a
    • 1LL * a(默认情况下 1int 类型,在后面加上 llLL 可以得到一个 long long 类型的 1
  • 存入一个目标类型的变量:
    • char c = 'a' - 32;
  • (type) 前缀,这个前缀会把紧跟着的数变为 type 类型:
    • (double)p / q
    • (char)('a' - 32)