C++ 零基础教程 - 第 5 讲 变量和数据类型
一、开篇导入(衔接上一讲,零基础易懂)
上一讲我们实现了简单的整数计算器,在代码中写了int num1 = 10;、int num2 = 5;,当时我们简单提了一句"这是定义整数变量"。其实,变量是C++最基础、最核心的知识点,就像我们生活中"装东西的盒子",学会用变量,才能写出更灵活的程序(比如后续修改计算器的数字,不用改所有代码)。
本讲我们就专门讲解"变量"和"数据类型",全程极简、不绕弯,只讲零基础必懂的内容,结合上一讲的计算器代码,让你快速理解、快速上手,为后续学习打下基础。
温馨提示:本讲不用死记硬背,重点理解"变量是什么、怎么用",结合简单代码练习,就能轻松掌握。
二、本讲核心目标(明确重点,不浪费时间)
-
理解变量的概念:知道变量是什么、能用来做什么(结合上一讲的计算器案例);
-
掌握变量的定义和使用方法:会自己定义变量、给变量赋值,能在代码中使用变量;
-
认识3种基础常用数据类型:重点掌握整数、双精度小数、字符串类型,知道什么时候用哪种类型;
-
记住变量命名的简单规则:避免因命名错误导致程序报错(新手最易踩坑)。
三、什么是变量?(零基础大白话版)
变量,简单来说,就是计算机中"装数据的盒子"------这个盒子有自己的"名字"(变量名)、有自己的"容量"(数据类型),里面可以装不同的数据(数字、文字等),而且里面的数据可以随时修改。
结合上一讲的计算器案例,帮你快速理解:
-
我们写的
int num1 = 10;,就是创建了一个"盒子": -
盒子的名字(变量名):num1;
-
盒子的容量(数据类型):int(只能装整数);
-
盒子里装的数据(赋值):10;
-
后续我们可以把盒子里的数据改成20、30,比如
num1 = 20;(不用再写int)。 -
为什么要用变量?比如上一讲的计算器,我们想把计算的数字改成20和4,只需要修改num1和num2的值,不用修改后面的加法、减法、乘法代码,大大简化操作------这就是变量的核心作用:灵活存储、修改数据。
补充:变量就像我们的"书包",可以装书本(数据),想换书本(修改数据)直接换,不用换书包(变量名);数据类型就像书包的"大小",小书包(int)装不下大书本(小数、字符串),所以我们需要不同类型的"书包"(数据类型)。
四、核心知识点1:变量的定义与使用(必学)
变量的使用分为两步:定义变量 (创建"盒子")→ 使用变量(给盒子装数据、用盒子里的数据),我们结合简单代码,一步步讲解,全程极简,零基础可直接上手。
1. 变量的定义格式(固定写法,记牢)
零基础只需要记住最基础的定义格式,后续我们再逐步拓展:
cpp
数据类型 变量名 = 初始值;
拆解说明(结合上一讲的int num1 = 10;):
-
数据类型:比如int(整数类型),后续我们会讲其他基础常用类型;
-
变量名:我们给"盒子"起的名字,自己随便起,只要符合命名规则即可;
-
= 初始值:可选(可以先创建盒子,后续再装数据),比如
int num1;(先创建盒子,不装数据),再num1 = 10;(给盒子装数据); -
; :语句结束标识,不能漏写(新手最易忘)。
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. 新手注意事项(避坑关键)
-
定义变量时,必须先写"数据类型",比如不能直接写
age = 18;(会报错),必须写int age = 18;; -
同一个变量,只能定义一次,比如写了
int age = 18;,再写int age = 19;(会报错),修改值直接写age = 19;即可; -
变量名区分大小写,比如age和Age是两个不同的变量(C++严格区分大小写,和上一讲的main函数一样);
-
使用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条核心规则,足够用:
- 变量名只能由字母、数字、下划线组成,不能有其他符号(比如@、#、中文等);
✅ 正确示例:num1、age_1、score
❌ 错误示例:num@1、年龄、score#123
- 变量名不能以数字开头(可以以字母或下划线开头);
✅ 正确示例:a1、_num、age
❌ 错误示例:1num、123age
- 变量名不能是C++的关键字(关键字是C++自带的"保留字",有特殊含义,比如int、main、return等);
❌ 错误示例:int int = 10;(int是关键字,不能当变量名)、main = 5;(main是关键字)
- 变量名区分大小写(C++严格区分,age和Age是两个不同的变量);
示例:int age = 18; int Age = 19; 这是两个不同的变量,值可以不一样。
温馨提示:变量名建议起"有意义"的名字,比如用age表示年龄、score表示成绩、height表示身高、name表示名字,这样后续看代码时,一眼就能知道变量的作用,避免起a、b、c这种无意义的名字(虽然不报错,但不方便阅读)。
七、新手常见问题排查(避坑指南)
-
问题1:定义变量时,报错"expected initializer before '变量名'" → 解决方案:检查是否漏写了数据类型(比如直接写age = 18;,漏写了int)。
-
问题2:变量名报错,提示"invalid suffix "num" on integer constant" → 解决方案:变量名以数字开头了(比如1num),修改成num1即可。
-
问题3:修改变量值时,报错"redeclaration of '变量名'" → 解决方案:重复定义变量了(比如写了两次int age = 18;),修改值时不用写数据类型,直接写age = 19;即可。
-
问题4:double类型打印结果有很多小数(比如1.75打印成1.750000) → 解决方案:这是正常现象,新手不用管,后续我们会学习如何控制小数位数。
-
问题5:使用std::string报错,提示"未定义标识符string" → 解决方案:漏写了
#include <string>,在#include <iostream>后面添加这一行即可。 -
问题6:std::string报错,提示"'string' is not a member of 'std'" → 解决方案:检查是否漏写了std::,比如把string name = "Tom";改成std::string name = "Tom";。
八、动手练一练(巩固本讲内容,必做)
结合本讲知识点,完成以下练习,就能熟练掌握变量和基础常用数据类型的用法,建议实际编写代码运行:
-
定义3个变量:int类型的num1(值为25)、double类型的num2(值为3.5)、std::string类型的str(值为"Hello");
-
修改变量值:把num1改成30,num2改成4.8,str改成"World";
-
编写cout语句,打印所有变量的值,格式如下:
Integer: 30
Decimal: 4.8
String: World
- 尝试定义一个变量,变量名符合命名规则(比如student_score),赋值为96,打印出来。
九、本讲小结
-
核心概念:变量是计算机中"装数据的盒子",用来灵活存储、修改数据,数据类型是"盒子的大小",决定能装什么类型的数据;
-
3种基础常用数据类型:int(整数)、double(双精度小数)、std::string(字符串),记住每种类型的作用和使用场景;
-
变量的使用步骤:定义(数据类型 变量名 = 初始值;)→ 修改(变量名 = 新值;)→ 使用(打印、计算等);
-
关键避坑点:变量名遵循4条规则、不能重复定义、std::string需加std::且引入头文件、语句结尾加分号;
-
下一讲我们会学习"赋值运算符"和"算术运算符的进阶用法",结合变量,实现更灵活的计算(比如用变量做加减乘)。