C++ 零基础教程 - 第 5 讲 变量和数据类型

C++ 零基础教程 - 第 5 讲 变量和数据类型

一、开篇导入(衔接上一讲,零基础易懂)

上一讲我们实现了简单的整数计算器,在代码中写了int num1 = 10;int num2 = 5;,当时我们简单提了一句"这是定义整数变量"。其实,变量是C++最基础、最核心的知识点,就像我们生活中"装东西的盒子",学会用变量,才能写出更灵活的程序(比如后续修改计算器的数字,不用改所有代码)。

本讲我们就专门讲解"变量"和"数据类型",全程极简、不绕弯,只讲零基础必懂的内容,结合上一讲的计算器代码,让你快速理解、快速上手,为后续学习打下基础。

温馨提示:本讲不用死记硬背,重点理解"变量是什么、怎么用",结合简单代码练习,就能轻松掌握。

二、本讲核心目标(明确重点,不浪费时间)

  1. 理解变量的概念:知道变量是什么、能用来做什么(结合上一讲的计算器案例);

  2. 掌握变量的定义和使用方法:会自己定义变量、给变量赋值,能在代码中使用变量;

  3. 认识3种基础常用数据类型:重点掌握整数、双精度小数、字符串类型,知道什么时候用哪种类型;

  4. 记住变量命名的简单规则:避免因命名错误导致程序报错(新手最易踩坑)。

三、什么是变量?(零基础大白话版)

变量,简单来说,就是计算机中"装数据的盒子"------这个盒子有自己的"名字"(变量名)、有自己的"容量"(数据类型),里面可以装不同的数据(数字、文字等),而且里面的数据可以随时修改。

结合上一讲的计算器案例,帮你快速理解:

  • 我们写的int num1 = 10;,就是创建了一个"盒子":

  • 盒子的名字(变量名):num1;

  • 盒子的容量(数据类型):int(只能装整数);

  • 盒子里装的数据(赋值):10;

  • 后续我们可以把盒子里的数据改成20、30,比如num1 = 20;(不用再写int)。

  • 为什么要用变量?比如上一讲的计算器,我们想把计算的数字改成20和4,只需要修改num1和num2的值,不用修改后面的加法、减法、乘法代码,大大简化操作------这就是变量的核心作用:灵活存储、修改数据。

补充:变量就像我们的"书包",可以装书本(数据),想换书本(修改数据)直接换,不用换书包(变量名);数据类型就像书包的"大小",小书包(int)装不下大书本(小数、字符串),所以我们需要不同类型的"书包"(数据类型)。

四、核心知识点1:变量的定义与使用(必学)

变量的使用分为两步:定义变量 (创建"盒子")→ 使用变量(给盒子装数据、用盒子里的数据),我们结合简单代码,一步步讲解,全程极简,零基础可直接上手。

1. 变量的定义格式(固定写法,记牢)

零基础只需要记住最基础的定义格式,后续我们再逐步拓展:

cpp 复制代码
数据类型 变量名 = 初始值;

拆解说明(结合上一讲的int num1 = 10;):

  1. 数据类型:比如int(整数类型),后续我们会讲其他基础常用类型;

  2. 变量名:我们给"盒子"起的名字,自己随便起,只要符合命名规则即可;

  3. = 初始值:可选(可以先创建盒子,后续再装数据),比如int num1;(先创建盒子,不装数据),再num1 = 10;(给盒子装数据);

  4. ; :语句结束标识,不能漏写(新手最易忘)。

2. 变量的使用示例(直接套用即可)

我们用一段简单代码,演示变量的"定义→修改→使用",代码可直接复制运行,重点理解每一步的作用:

cpp 复制代码
#include <iostream>
#include <string>  // 使用std::string必须引入该头文件

int main() {
    // 1. 定义变量(int整数、std::string字符串)
    int age = 18;          // 数据类型int,变量名age,初始值18
    std::string name = "Tom";  // 数据类型std::string,变量名name,初始值"Tom"
    
    // 2. 修改变量的值(给盒子换数据)
    age = 19;              // 把age的值改成19,不用再写int
    name = "Jerry";        // 把name的值改成"Jerry",不用再写std::string
    
    // 3. 使用变量(打印变量的值)
    std::cout << "My name is: " << name << std::endl;
    std::cout << "My age is: " << age << std::endl;
    
    return 0;
}

运行结果:

My name is: Jerry

My age is: 19

观察结果:我们修改了age和name的值,打印出来的就是修改后的数据,这就是变量的灵活性------不用修改所有代码,只改变量值,就能得到不同结果。

3. 新手注意事项(避坑关键)

  1. 定义变量时,必须先写"数据类型",比如不能直接写age = 18;(会报错),必须写int age = 18;

  2. 同一个变量,只能定义一次,比如写了int age = 18;,再写int age = 19;(会报错),修改值直接写age = 19;即可;

  3. 变量名区分大小写,比如age和Age是两个不同的变量(C++严格区分大小写,和上一讲的main函数一样);

  4. 使用std::string时,必须引入#include <string>,否则会报错。

五、核心知识点2:3种基础常用数据类型(重点,必记)

上一讲我们只用到了int(整数类型),实际写程序时,我们最常用的就是3种基础数据类型,分别对应整数、双精度小数、一串文字,新手只需要掌握这3种,足够应对前期所有基础编程需求,不用记复杂类型。

补充:用double(双精度小数)替代float,因为double的精度更高(能存储更多小数位数),日常编程中更常用;新增std::string(字符串),用来存储一串文字(比如名字、句子)。

基础常用数据类型总结(表格清晰,记牢)

数据类型 作用(装什么数据) 定义示例 注意事项
int 装整数(没有小数的数字,可正可负) int num = 10;
int a = -5; 不能装小数、字符串,比如int num = 10.5;(会报错)
double 装小数(有小数点的数字,可正可负,精度高) double height = 1.75;
double weight = 60.5; 精度比float高,日常编程优先使用,小数后可加d(如1.75d)或不加
std::string 装一串文字、字母或符号(字符串) std::string name = "Tom";
std::string msg = "Hello"; 必须加std::,用英文双引号""包裹,可装多个字符,且需引入#include

2. 实战示例:同时使用3种基础数据类型

结合上面的表格,我们写一段代码,同时使用int、double、std::string三种类型,熟悉每种类型的用法,代码可直接复制运行:

cpp 复制代码
#include <iostream>
#include <string>  // 使用std::string必须引入该头文件

int main() {
    // 1. int 整数类型(存储年龄)
    int age = 19;
    // 2. double 双精度小数类型(存储身高)
    double height = 1.75;
    // 3. std::string 字符串类型(存储名字)
    std::string name = "Tom";
    
    // 打印所有变量的值,查看效果
    std::cout << "Name: " << name << std::endl;
    std::cout << "Age: " << age << " years old" << std::endl;
    std::cout << "Height: " << height << " meters" << std::endl;
    
    return 0;
}

关键提醒:使用std::string类型时,必须在代码最开头新增#include <string>(引入字符串工具包),否则会报错。

运行结果:

Name: Tom

Age: 19 years old

Height: 1.75 meters

新手练习:修改上面的变量值(比如age改成20,height改成1.80,name改成"Lucy"),运行后查看结果变化,加深理解。

六、核心知识点3:变量命名规则(新手必记,避坑)

变量名是我们给"盒子"起的名字,不能随便起,需要遵循简单的规则,否则程序会报错,零基础只需要记以下4条核心规则,足够用:

  1. 变量名只能由字母、数字、下划线组成,不能有其他符号(比如@、#、中文等);

✅ 正确示例:num1、age_1、score

❌ 错误示例:num@1、年龄、score#123

  1. 变量名不能以数字开头(可以以字母或下划线开头);

✅ 正确示例:a1、_num、age

❌ 错误示例:1num、123age

  1. 变量名不能是C++的关键字(关键字是C++自带的"保留字",有特殊含义,比如int、main、return等);

❌ 错误示例:int int = 10;(int是关键字,不能当变量名)、main = 5;(main是关键字)

  1. 变量名区分大小写(C++严格区分,age和Age是两个不同的变量);

示例:int age = 18; int Age = 19; 这是两个不同的变量,值可以不一样。

温馨提示:变量名建议起"有意义"的名字,比如用age表示年龄、score表示成绩、height表示身高、name表示名字,这样后续看代码时,一眼就能知道变量的作用,避免起a、b、c这种无意义的名字(虽然不报错,但不方便阅读)。

七、新手常见问题排查(避坑指南)

  1. 问题1:定义变量时,报错"expected initializer before '变量名'" → 解决方案:检查是否漏写了数据类型(比如直接写age = 18;,漏写了int)。

  2. 问题2:变量名报错,提示"invalid suffix "num" on integer constant" → 解决方案:变量名以数字开头了(比如1num),修改成num1即可。

  3. 问题3:修改变量值时,报错"redeclaration of '变量名'" → 解决方案:重复定义变量了(比如写了两次int age = 18;),修改值时不用写数据类型,直接写age = 19;即可。

  4. 问题4:double类型打印结果有很多小数(比如1.75打印成1.750000) → 解决方案:这是正常现象,新手不用管,后续我们会学习如何控制小数位数。

  5. 问题5:使用std::string报错,提示"未定义标识符string" → 解决方案:漏写了#include <string>,在#include <iostream>后面添加这一行即可。

  6. 问题6:std::string报错,提示"'string' is not a member of 'std'" → 解决方案:检查是否漏写了std::,比如把string name = "Tom";改成std::string name = "Tom";。

八、动手练一练(巩固本讲内容,必做)

结合本讲知识点,完成以下练习,就能熟练掌握变量和基础常用数据类型的用法,建议实际编写代码运行:

  1. 定义3个变量:int类型的num1(值为25)、double类型的num2(值为3.5)、std::string类型的str(值为"Hello");

  2. 修改变量值:把num1改成30,num2改成4.8,str改成"World";

  3. 编写cout语句,打印所有变量的值,格式如下:

Integer: 30

Decimal: 4.8

String: World

  1. 尝试定义一个变量,变量名符合命名规则(比如student_score),赋值为96,打印出来。

九、本讲小结

  1. 核心概念:变量是计算机中"装数据的盒子",用来灵活存储、修改数据,数据类型是"盒子的大小",决定能装什么类型的数据;

  2. 3种基础常用数据类型:int(整数)、double(双精度小数)、std::string(字符串),记住每种类型的作用和使用场景;

  3. 变量的使用步骤:定义(数据类型 变量名 = 初始值;)→ 修改(变量名 = 新值;)→ 使用(打印、计算等);

  4. 关键避坑点:变量名遵循4条规则、不能重复定义、std::string需加std::且引入头文件、语句结尾加分号;

  5. 下一讲我们会学习"赋值运算符"和"算术运算符的进阶用法",结合变量,实现更灵活的计算(比如用变量做加减乘)。

相关推荐
王老师青少年编程2 小时前
2022信奥赛C++提高组csp-s复赛真题及题解:假期计划
c++·真题·csp·信奥赛·csp-s·提高组·假期计划
萧曵 丶2 小时前
懒加载单例模式中DCL方式和原理解析
java·开发语言·单例模式·dcl
℡枫叶℡2 小时前
C# - 指定友元程序集
开发语言·c#·友元程序集
阿猿收手吧!2 小时前
【C++】constexpr动态内存与双模式革命
开发语言·c++
小小码农Come on2 小时前
QT开发环境安装
开发语言·qt
云深处@2 小时前
【C++】哈希表
开发语言·c++
weixin_452159552 小时前
模板编译期条件分支
开发语言·c++·算法
guygg882 小时前
傅立叶光学的Matlab实现方法
开发语言·matlab
啊我不会诶2 小时前
蓝桥杯练习 混乱的数组
c++·蓝桥杯