C++系统学习日记 · 第02天|变量与常量:基础语法+使用规范

4 阅读5分钟

📖 学习信息

学习课程:黑马C++零基础教程

本日学习:C++ 变量(定义、赋值、使用)、常量(宏常量、const常量)、核心区别与使用场景

学习目标:掌握变量和常量的基础写法,理解二者的核心差异,能根据场景正确选择使用,规避基础错误

一、先搞懂:什么是变量?

变量是可以变化的量,本质是计算机内存中的一块存储空间,用于存储程序运行过程中需要修改、使用的数据(比如数字、字符等)。

通俗理解:变量就像一个“储物盒”,我们给它起个名字(变量名)、规定它能装什么类型的东西(数据类型),里面的东西(值)可以随时更换。

1. 变量的基础语法(必掌握)

✅ 定义格式:数据类型 变量名 = 初始值;(初始值可省略,建议养成初始化的习惯)

✅ 核心要素:数据类型(规定变量存储的数据种类)、变量名(给存储空间起的名字)、初始值(可选,首次赋予的值)

2. 常用数据类型(基础阶段必记)

入门阶段重点掌握4种基础数据类型,后续课程会逐步扩展:

  • int:整型,用于存储整数(正数、负数、0),比如 10、-5、0
  • float:单精度浮点型,用于存储小数(精度较低),比如 3.14、1.5
  • double:双精度浮点型,用于存储小数(精度更高,更常用),比如 3.1415926
  • char:字符型,用于存储单个字符,需用单引号包裹,比如 'A'、'0'、'+'

3. 变量使用示例(实操为主)

#include <iostream>
using namespace std;

int main()
{
    // 1. 定义变量并初始化(推荐写法)
    int age = 20;          // 整型变量:存储年龄
    double score = 95.5;   // 双精度浮点型:存储分数
    char gender = '男';     // 字符型:存储性别
    
    // 2. 输出变量的值
    cout << "年龄:" << age << endl;
    cout << "分数:" << score << endl;
    cout << "性别:" << gender << endl;
    
    // 3. 修改变量的值(变量的核心特性:可修改)
    age = 21;
    score = 98.0;
    cout << "修改后年龄:" << age << endl;
    cout << "修改后分数:" << score << endl;
    
    return 0;
}

4. 变量命名规范(避坑关键)

变量名不能随便起,必须遵循以下规则,否则编译器会报错:

  1. 只能由字母(a-z、A-Z)、数字(0-9)、下划线(_)组成,不能包含空格、特殊符号(比如 @、#、$)
  2. 不能以数字开头,比如 123age 是错误的,age123 是正确的
  3. 不能使用C++关键字(比如 int、cout、using 等),比如 int int = 10; 是错误的
  4. 区分大小写,比如 ageAge 是两个不同的变量
  5. 建议:命名要见名知意(比如用 age 表示年龄,不用 a、b、c 等无意义字母),方便后续阅读和复盘

二、再理解:什么是常量?

常量是不可变化的量,本质也是内存中的一块存储空间,但一旦赋值,程序运行过程中就不能再修改,多用于存储固定不变的数据(比如圆周率、性别、固定的阈值等)。

通俗理解:常量就像一个“密封的储物盒”,里面的东西(值)一旦放进去,就不能再更换,只能查看。

1. C++ 两种常量写法(必掌握)

入门阶段重点掌握两种常量,其中 const常量更常用、更安全,优先学习。

(1)宏常量(C语言兼容写法)

✅ 语法:#define 常量名 常量值(注意:末尾没有分号)

✅ 特点:定义在程序开头,作用域是整个程序,没有数据类型限制

✅ 示例:

#include <iostream>
// 定义宏常量:圆周率(固定值,不可修改)
#define PI 3.1415926
using namespace std;

int main()
{
    cout << "圆周率:" << PI << endl;
    // PI = 3.14;  // 错误!宏常量不能修改
    return 0;
}

(2)const 常量(C++推荐写法)

✅ 语法:const 数据类型 常量名 = 常量值;(末尾必须有分号)

✅ 特点:有明确的数据类型,作用域更灵活,安全性更高,能避免很多错误

✅ 示例:

#include <iostream>
using namespace std;

int main()
{
    // 定义const常量:性别(固定值,不可修改)
    const char GENDER = '女';
    // 定义const常量:班级人数
    const int CLASS_SIZE = 50;
    
    cout << "性别:" << GENDER << endl;
    cout << "班级人数:" << CLASS_SIZE << endl;
    
    // GENDER = '男';  // 错误!const常量不能修改
    // CLASS_SIZE = 55; // 错误!const常量不能修改
    return 0;
}

三、变量与常量 核心区别(必记)

对比项变量常量
值是否可修改可以随时修改一旦赋值,不可修改
定义方式数据类型 变量名 = 初始值;#define 常量名 常量值 / const 数据类型 常量名 = 常量值;
数据类型必须指定数据类型宏常量无类型,const常量有类型
安全性较低(可能误修改)较高(不可修改,避免误操作)

四、常见错误与避坑点

  • ❌ 错误1:变量未定义就使用 比如:cout << num << endl;(num 未定义,编译器报错),需先写 int num = 0;
  • ❌ 错误2:变量命名不规范 比如:int 1num = 10;(以数字开头)、int num@ = 20;(包含特殊符号),均会报错
  • ❌ 错误3:修改常量的值 无论是宏常量还是const常量,一旦赋值,修改就会报错,牢记“常量不可改”
  • ❌ 错误4:变量未初始化 比如:int num;(未赋值),虽然编译器可能不报错,但变量值是随机的,容易导致程序异常,建议养成初始化习惯

五、今日学习总结

  1. 变量:可变化的量,语法 数据类型 变量名 = 初始值;,需遵循命名规范,可随时修改值;
  2. 常量:不可变化的量,两种写法(宏常量、const常量),const常量更推荐、更安全;
  3. 核心区别:变量的值可修改,常量的值不可修改,根据场景选择使用(固定值用常量,变化值用变量);
  4. 基础数据类型:掌握 int、float、double、char 的用法,后续逐步扩展。

✍️ 下节预告

下一篇将学习完整的各种数据类型,继续跟着黑马教程稳步推进,夯实零基础基础,为后续写复杂代码打牢根基。