C++ 基础类型与变量

1 min read [C/C++零基础到大神] post #cpp#type#basic

C++ 是静态类型语言。变量在编译期就有确定类型。

常见基础类型

int age = 18;
double score = 95.5;
bool ok = true;

初始化

推荐使用花括号初始化:

int x{10};
double y{3.14};

它可以减少隐式窄化转换带来的错误。

作用域

变量只在声明它的作用域内可见。局部变量离开作用域后生命周期结束。

不是所有 int 都一样

面试或工程代码里经常会出现一个问题:整数范围到底够不够?int 通常是 32 位,但标准并不要求它一定是固定大小。写业务代码时,如果数据范围可能超过 20 亿,直接使用 long long 会更稳妥。涉及二进制协议、文件格式或网络包时,则应该使用 std::int32_tstd::uint64_t 这类固定宽度类型。

浮点数也不是数学里的实数。double 能表示很大范围的数,但不能精确表示所有小数。比较浮点数时,不要直接写 a == b,更常见的做法是比较误差:

bool almost_equal(double a, double b) {
    return std::abs(a - b) < 1e-9;
}

我会怎么记

变量类型不是语法装饰,而是在告诉编译器:这块内存应该怎样解释、怎样参与运算、怎样拷贝和销毁。理解这一点后,后面学习引用、指针、对象布局时会顺很多。

评论

...

正在读取评论。