C++ 竞赛入门

变量

变量

本节学会什么

  • 定义、初始化和修改变量
  • 区分“变量名”“变量当前保存的值”和“表达式结果”
  • 理解局部变量只在自己的代码块中可用

为什么需要它

输入的数据、计算过程和最终答案都需要名字。变量让程序能保存会变化的状态,而不是把每一步都写成不可修改的常量。

最小可运行示例

#include <iostream>

int main() {
    int apples = 3;
    apples = apples + 2;
    apples += 1;

    std::cout << apples << '\n';
    return 0;
}

输出是 6= 在这里表示“把右边算出的值存进左边变量”,不是数学中的“相等”。

关键过程与易错点

  • 先定义再使用:int score; 创建变量,score = 100; 才给它赋值。
  • 尽量在定义时初始化:int sum = 0;int sum; 更安全。
  • 变量名由字母、数字和下划线组成,不能以数字开头,也不能使用关键字,例如 int
  • 一对 {} 形成代码块。在块中定义的变量离开块后就不存在:
#include <iostream>

int main() {
    int outside = 1;
    {
        int inside = 2;
        std::cout << outside + inside << '\n';
    }
    // std::cout << inside; // 错误:inside 已离开作用域
}

同名变量会造成阅读困难。即使语法允许,也不要随意遮蔽外层变量。

动手检查

读入一个整数 n,定义变量 answer,先令它等于 n,再依次加上 10、减去 3、乘以 2 并输出。每一步都用一条赋值语句完成。

立即练习

难度 题目 题解 训练目标
基础 洛谷 P5703:苹果采购 题解 用变量保存两个输入量和计算结果。
巩固 洛谷 P1421:小玉买文具 题解 用清晰的变量名组织金额换算和结果。
挑战 洛谷 P5707:上学迟到 题解 把“路程、速度、准备时间、出发时间”拆成多个状态变量。