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、0x2Aint
42u、42ul无符号整型
3.14double
3.14ffloat
'A'char
"hello"const char[](见 std::string 章节)
true / falsebool

定义与初始化

定义变量时同时给出初始值,可避免读取未定义内容(与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;  // double

auto 仍要求静态类型,并非动态类型;未初始化时不能使用 auto。

与 C 语言的差异提示

  • bool:C++ 关键字;C 中常用 int 模拟真假。
  • 字符串:字面量类型为 const char[],日常文本处理更推荐使用 std::string(见string 字符串)。
  • 输入输出:优先 iostream,而非 C 的 printf / scanf,以利于类型安全与扩展。

本节说明了 C++ 中常见算术类型、字面量、初始化方式以及 const 与 auto 的入门用法。下一节介绍标准输入与输出:cin、cout 与格式化输出基础。