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

常见数据类型/变量类型

有符号整数 无符号整数
3232 位 int、signed unsigned、unsigned 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 −231∼231−1-2^{31}\sim 2^{31}-1,约 −2×109∼2×109-2\times 10^9\sim 2\times 10^9 %d/%d
long long 6464 位整数 88 Bytes −263∼263−1-2^{63}\sim 2^{63}-1,约 −9×1018∼9×1018-9\times 10^{18}\sim 9\times 10^{18} %lld/%lld
char 字符 11 Byte 至少能储存 0∼1270\sim 127,常见范围为 −128∼127-128\sim 127 %c/%c
float 单精度浮点数 44 Bytes −3.4×1038∼3.4×1038-3.4\times 10^{38}\sim 3.4\times 10^{38},有效数字 6∼76\sim 7 位 %f/%f
double 双精度浮点数 88 Bytes −1.7×10308∼1.7×10308-1.7\times 10^{308}\sim 1.7\times 10^{308},有效数字 15∼1615\sim 16 位 %lf/%f
unsigned int 无符号 3232 位整数 44 Bytes 0∼232−10 \sim 2^{32}-1,约 0∼4×1090 \sim 4\times 10^9 %u/%u
unsigned long long 无符号 6464 位整数 88 Bytes 0∼264−10 \sim 2^{64}-1,约 0∼1.8×10190 \sim 1.8\times 10^{19} %llu/%llu

类型转换

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