C++ 是静态类型语言:每个变量、表达式在编译阶段都具备确定的类型,类型决定可执行的操作与占用的存储方式。本节介绍常用的算术类型、字面量写法、变量定义与初始化,以及 C++11 起常用的类型推导关键字 auto,为后续运算符与输入输出打基础。
常用算术类型
| 类型 | 典型用途 | 说明 |
|---|---|---|
int | 计数、下标 | 整型,宽度由实现定义,至少 16 位 |
long / long long | 较大整数 | 宽度至少与 int 相同;long long 至少 64 位(C++11) |
double | 科学计算、测量值 | 双精度浮点,带小数点的字面量默认为 double |
float | 单精度浮点 | 后缀 f,如 3.14f |
bool | 条件结果 | 取值为 true 或 false |
char | 单字节字符 | 与 signed char / unsigned char 的符号性由实现定义 |
需要明确位宽时可使用 int32_t、uint64_t 等类型(头文件 <cstdint>),本教程入门阶段以 int、double 为主。可用 sizeof(type) 查询类型所占字节数(编译期常量)。
字面量
| 写法 | 类型(常见) |
|---|---|
42、0x2A | int |
42u、42ul | 无符号整型 |
3.14 | double |
3.14f | float |
'A' | char |
"hello" | const char[](见 std::string 章节) |
true / false | bool |
定义与初始化
定义变量时同时给出初始值,可避免读取未定义内容(与C 语言变量一样,未初始化的局部变量值不确定):
#include <iostream>
int main() {
int count = 0;
double pi = 3.14159;
bool ok = true;
std::cout << count << " " << pi << " " << ok << std::endl;
return 0;
}C++11 起支持列表初始化(花括号),类型不匹配时编译器会拒绝窄化转换:
int x{42};
double y{3.0};
// int bad{3.9}; // 错误:double 窄化为 int 被禁止变量可在语句任意位置定义(直至所在块结束),不必像 C89 那样集中在块首。
const 与 auto
const 修饰变量表示运行期间不可再赋值(初始化仍须完成):
const int max_users = 100;auto 由编译器根据初始化表达式推导类型,适合迭代器、复杂模板类型等场景;初学时可用于简化局部变量声明(详见auto 与 decltype):
auto n = 10; // int
auto rate = 0.05; // doubleauto 仍要求静态类型,并非动态类型;未初始化时不能使用 auto。
与 C 语言的差异提示
bool:C++ 关键字;C 中常用int模拟真假。- 字符串:字面量类型为
const char[],日常文本处理更推荐使用std::string(见string 字符串)。 - 输入输出:优先
iostream,而非 C 的printf/scanf,以利于类型安全与扩展。
本节说明了 C++ 中常见算术类型、字面量、初始化方式以及 const 与 auto 的入门用法。下一节介绍标准输入与输出:cin、cout 与格式化输出基础。