第 2 课

变量与输入

一句话答案:变量是内存里一个有名字的盒子,装着某一个类型的一个值。先声明(类型 + 名字,int age;),再赋值(age = 20;),从此这个名字就是那个值。

四个类型够写绝大多数新手代码

类型装什么例子
int整数int score = 95;
double小数double price = 19.99;
char单个字符,单引号char grade = 'A';
bool真或假bool passed = true;

类型决定盒子占几个字节、里面的比特怎么读。这就是 'A' 和 "A" 不同的原因:单引号是 char,双引号是字符串字面量(完整解释)。

声明、赋值、打印

#include <iostream>
using namespace std;

int main() {
    int score = 95;
    double price = 19.99;
    char grade = 'A';
    bool passed = true;

    cout << "score:  " << score << endl;
    cout << "price:  " << price << endl;
    cout << "grade:  " << grade << endl;
    cout << "passed: " << passed << endl;   // bool 打印成 1 / 0
    return 0;
}

最后一行是第一个意外:bool 打印成 1 或 0,不是 true/false。cout 默认就这么处理布尔值。

用 cin 读输入

cin >> name 从键盘读一个值。>> 箭头指向变量,正好帮记方向:

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a;
    cin >> b;
    cout << "sum = " << a + b << endl;
    return 0;
}

把输入框里的数字改改:这不是计算器应用,只是四行算术恰好跑在浏览器里。

整数除法,再说一遍

最常见的数值意外:int / int 还是 int,小数直接丢。

#include <iostream>
using namespace std;

int main() {
    int a = 7, b = 2;
    cout << a / b << endl;             // 3 —— 小数被丢弃
    cout << (double)a / b << endl;     // 3.5 —— 有一边是 double
    return 0;
}

负数与 % 的完整解释:为什么 7 / 2 是 3。

这周一定会踩的坑

配套练习

下面这几道题练的正是刚讲的内容: