作者:咏方舟-长江支流  日期:2026-02-27

  《C++ 零基础到底层实战-全套31篇 · 体系化教程》,从环境安装→基础语法 → 面向对象 → 多线程 → 智能指针 → 鸿蒙原生开发,一套打通:桌面开发 / 嵌入式 / 鸿蒙 / 高薪底层开发。

🔰 C++零基础入门 · 第3篇 C++变量与数据类型 一步一步实战

✅ 标准C++ 🖥️ Windows VS2022/2026 📱 鸿蒙 DevEco 🐧 Linux GCC 🍎 macOS Clang

📌 标准C++跨平台说明

变量、数据类型在所有平台行为一致,鸿蒙、Linux、Windows均可直接运行。

【C++零基础入门】第3篇:C++变量与数据类型-一步一步实战

本节目标

◦ VS创建和打开项目
◦ 函数
◦ 理解变量:存储数据的盒子
◦ 掌握常用数据类型
◦ 定义、赋值、输出

开发环境

◦ 操作系统
        Windows 10
◦ 开发工具
        Visual Studio 2022/2026,简称VS2022/VS2026,或VS  (安装更新教程

知识回顾:

开发工具Visual Studio 2022 安装
         详细安装更新见 [连载] C++ 零基础入门-1.Visual Studio环境安装

创建项目(本篇会写文字过程,方便初次阅读本连载读者)
         详细过程 见 [连载] C++ 零基础入门-2.第一个HelloWorld程序 创建项目
运行
        按F5或点「本地Windows调试器」

调试(极期重要,本篇会写文字总结,图片及详细请参考以下链接)

         详细过程 见 [连载] C++ 零基础入门-2.第一个HelloWorld程序 单步调试代码

        下面是简单总结:
        单步执行  F11,按一下,执行一行语句,继续按F11,逐语句执行,碰到函数进入函数也是一行一行的执行;
        过程执行  F10,按一下,执行一行语句或函数(不进入函数)
        断点 F9,设置断点或去掉当前行的断点标识
        按F5运行程序,执行 到断点,程序自动停下来,此时方便查看当前程序状态、变量值,方便监测,之后可以使用逐语句单步执行或进入函数体内单步执行

语句\表达式\预处理\标准输出cout\链式写法

         见 【C++ 刨根问底】世界上最好的 Hello World!底层解密,80% 人只写不懂,别不信?

Step 1 创建项目

        详细过程 见 [连载] C++ 零基础入门-2.第一个HelloWorld程序  但这里附文字步骤,熟悉创建项目过程的读者可跳过此步:

在开始菜单中点击 Visual Studio ,打开Visual Studio ,可以“打开最近使用的内容”,也可以直接点击“创建新项目”,还可以点击“继续但无需代码”而打开Visual Studio集成开发环境,简称IDE

1> 在 Visual Studio 中,打开 “文件 ”菜单,然后选择“ 新建 > 项目 ”以打开“ 创建新项目 ”对话框。 在所有语言下拉框中,选择C++ ,然后在下面的列表中,选择控制台应用,然后选择“下一步”。

2> 在“配置新项目”对话框中,在“项目名称编辑”框中输入 HelloWorld,因为VS中一个解决方案可以包含1个或多个项目,这里只一个演示项目,所以钩选“将解决方案和项目放在同一个目录中,可以在“位置”中更改项目目录。  

3> 然后选择“创建”,以创建项目,系统自动生成代码。

Step 2 打开项目

        1 > 方法一:如果VS已关闭,打开VS时弹出对话框,直接在“打开最近使用的内容”列表中,单击之前的项目如HelloWorld.sln(.sln是解决方案扩展名,可包含一个或多个项目proj),实际就是打开了HelloWorld项目HelloWorld.vcxproj

2> 方法二:在 Visual Studio 中,打开 “文件 ”菜单,然后选择“ 打开 > 项目或解决方案 ”,然后选择.sln或.vcxproj后点“打开”。

3> 方法三:在 Visual Studio 中,打开 “文件 ”菜单,然后选择“  最近使用的项目和解决方案 ”,然后在菜单列表中选择即可。

Setp 3 项目目录结构

在解决方案资源管理器(如果已隐藏或关闭,主菜单“视图”>“解决方案资源管理器”)中,有一个解决方案,包含了一个项目,项目中只有一个HelloWorld.cpp源文件。如下图,可以用记事本打开文件,内容是用文本或xml格式记录了它们之前的关系。

Setp 4 总结HelloWorld代码

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

1> 扩展名

C++初始代码,在HelloWorld.cpp中,扩展名cpp即为c++拼c plus plus简写。

2>预处理指令

因为需求是在标准输出设备如屏幕显示Hello World!,但是HelloWorld.cpp文件的代码中并没有功能程序实现输出,只是想使用现成的或别人已经实现的功能程序。而C++提供了一套标准的程序实现了包括输出输出功能在内的程序集,因此使用者希望系统直接把这个程序拷贝过来,而使用#include <iostream>这个预处理指令,让系统在编译时把相应的iostream程序原封不动的拷到HelloWorld.cpp替换掉#include <iostream>这一行,就可以直接使用里面的功能如输出cout。

3>调用标准程序功能

把标准程序包含在HelloWorld.cpp中后,我们就可以调用标准程序中如输出功能cout,在之前的连载中,我们以仙桃为例其全称是湖北省仙桃市为例,是因为为了避免重复,特别是你多用几个#include后可能有重复名字冲突,因此我们用std::cout即命名标准库之下的的cout对象。

4>函数、程序的入口

C++程序的入口,是main()函数,所谓函数,也可叫方法,避免和初中高中数学知识混淆,即独立完成一项目功能的一个语句或多个语句,它们包含在 {}中。而{}里甚至一行语句也可以没有。

一个语句都没写的函数是空函数,就是为了占位,为将来程序的扩展在架构设计中非常重要。

 见 【C++ 刨根问底】世界上最好的 Hello World!底层解密,80% 人只写不懂,别不信?

Step 5:变量和常量

在编程中,我们经常会用到变量和常量来处理数据,理解它们的概念对于掌握 C++ 编程至关重要。

理解变量 - 存储数据的盒子

想象你有一栋房子,房子里有不同的房间,每个房间都可以存放不同的东西。变量就如同这些房间,它是用于存放数据的容器。

例如,我们要记录一个人的年龄,就可以创建一个名为 age 的变量来存放这个信息。因为年龄通常用整数表示,在 C++ 中整数类型为 int,所以我们这样定义变量:int age

如果在定义变量的同时就赋予它一个初始值,即初始化变量,可以写成 int age = 20;

int age = 20;

当然,也可以先定义变量,之后再进行赋值,像这样:

int age;
age = 20;
理解常量 - 固定不变的数据

常量是在程序运行过程中其值不能被改变的数据。例如,在数学中,圆周率 π 始终是一个固定的值,约为 3.14159。在 C++ 编程里,我们可以通过特定的方式来定义常量。

定义常量的方式

        1>使用 const 关键字:

const int daysInWeek = 7;

这里,我们定义了一个名为 daysInWeek 的常量,它的数据类型是 int,值为 7。通过 const 关键字修饰后,这个变量就成为了常量,在程序后续的代码中不能再对其进行赋值修改。如果尝试修改,例如 daysInWeek = 8;,编译器会报错。

        2>使用 #define 预处理器指令(这是一种宏定义方式):

#define PI 3.14159

这种方式定义的 PI 也是一个常量。在预处理阶段,编译器会将代码中所有出现 PI 的地方替换为 3.14159。不过,使用 const 定义常量是更现代和推荐的方式,因为 const 常量有数据类型,而宏定义只是简单的文本替换,可能会带来一些潜在的问题。

让我们回顾之前的 Hello World 程序:

int main()
{
    std::cout << "Hello World!\n";
}

在这个语句 std::cout << "Hello World!\n"; 中,"Hello World!\n" 就是一个字符常量。字符常量是固定不变的字符序列,这里它代表要输出到标准输出设备(通常是屏幕)的内容。与变量不同,变量的值是可以改变的,而这个字符序列在程序运行过程中始终保持不变。std::cout 是 C++ 标准库中用于输出的对象,通过 << 操作符将字符常量 Hello World!\n 发送到标准输出。\n 是一个转义字符,表示换行,所以输出完 Hello World 后会换行。

Setp 6 常用类型
◦ int:整数,用于表示整数数值,例如年龄、数量等。
◦ double:小数,用于表示带有小数部分的数值,例如身高、体重等。
◦ char:字符,用于表示单个字符,如字母、数字字符或符号等。
◦ string:字符串,用于表示一串字符,例如姓名、地址等。
◦ bool:布尔,用于表示逻辑值,只有 true(真)和 false(假)两个取值,常用于条件判断。

程序清单

#include <iostream>
#include <string>
using namespace std;
int main() {
    // 定义变量
    int age = 20;
    double height = 1.75;
    char sex = 'M';
    string name = "ZhangSan";
    bool isStudent = true;
    // 输出
    cout << "姓名:" << name << endl;
    cout << "年龄:" << age << endl;
    cout << "身高:" << height << endl;
    cout << "性别:" << sex << endl;
    cout << "是否学生:" << isStudent << endl;

    cout << "程序运行完成,按回车键退出!" << endl;
    std::cin.get();

    return 0;
}

逐行解释
#include <iostream>:输入输出头文件,用于使用`cout`等输入输出操作。
#include <string>:字符串头文件,用于使用`string`类型,可省略。
using namespace std;:使用标准命名空间,这样可以直接使用`cout`、`string`等标准库中的名称。
int main():程序入口函数。
int age = 20;:定义一个整数类型的变量`age`并初始化为20。
double height = 1.75;:定义一个双精度浮点数类型的变量`height`并初始化为1.75。
char sex = 'M';:定义一个字符类型的变量`sex`并初始化为'M'。
string name = "ZhangSan";:定义一个字符串类型的变量`name`并初始化为"ZhangSan"。
bool isStudent = true;:定义一个布尔类型的变量`isStudent`并初始化为`true`。
cout << "姓名:" << name << endl;:输出字符串"姓名:"和变量`name`的值,然后换行。
cout << "年龄:" << age << endl;:输出字符串"年龄:"和变量`age`的值,然后换行。
cout << "身高:" << height << endl;:输出字符串"身高:"和变量`height`的值,然后换行。
cout << "性别:" << sex << endl;:输出字符串"性别:"和变量`sex`的值,然后换行。
cout << "是否学生:" << isStudent << endl;:输出字符串"是否学生:"和变量`isStudent`的值,然后换行。

cout << "程序运行完成,按回车键退出!" << endl;:输出字符串,然后换行。
std::cin.get();   windows系统用system("pause");暂停程序,防止窗口一闪而过,方便查看输出结果,这里使用标准输入,并根据上而的示按回车键退出。
return 0;:程序正常结束,返回值0表示程序运行成功。

Setp 7 运行

        按F5运行程序成功,。

动手练习 修改代码,将`name`改为你的名字,`age`改为你的年龄,然后运行程序,查看输出结果。

📘 本篇是【C++零基础到底层实战】系列免费教程第3篇,全文step-by-step,小白可直接复制运行。本系列一共分为三大模块:

免费入门:零基础快速上手

进阶精讲:面向对象/内存/STL核心

底层高阶:多线程、智能指针、性能调优、企业级规范(AI很难替代)

后续我会持续更新全套教程,需要的朋友可以关注+收藏,不迷路

如果你想一次性拿到整套体系化PDF,可以看我主页介绍或公众号 金质打印通,从入门到底层,一套打通,自学、做课都能用。


🔔 下一篇预告:第4篇 · C++ 键盘输入 cin 一步一步学。标准C++,鸿蒙通用,敬请期待。

—— 用标准C++,一套代码,全平台通行。

—— 本系列所有代码均为标准C++,兼容Windows/鸿蒙/Linux/macOS ——

  大家有什么想法和建议或意见,欢迎在评论区留言,点赞、关注、收藏不迷路!
 
即日起公众号 GoldPrinter 正式开放,需要本系列完整 PDF 的朋友可以关注领取。

声明:本文作者 咏方舟-长江支流 相应内容版权归原作者所有,如需转载,请保留完整的内容及出处。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐