当前位置: 首页 > article >正文

[连载] C++ 零基础入门-3.C++变量与数据类型 一步一步实战

作者咏方舟-长江支流 日期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 的朋友可以关注领取。声明本文作者咏方舟-长江支流相应内容版权归原作者所有如需转载请保留完整的内容及出处。

相关文章:

[连载] C++ 零基础入门-3.C++变量与数据类型 一步一步实战

作者:咏方舟-长江支流 日期:2026-02-27 《C 零基础到底层实战-全套31篇 体系化教程》,从环境安装→基础语法 → 面向对象 → 多线程 → 智能指针 → 鸿蒙原生开发,一套打通:桌面开发 / 嵌入式 / 鸿蒙 / 高薪底层开发…...

数据模型是数据库系统设计与实现的理论基础,其核心知识点可系统归纳如下

数据模型是数据库系统设计与实现的理论基础,其核心知识点可系统归纳如下:基本概念 数据模型是对现实世界数据特征的抽象描述,是连接用户需求与数据库实现的桥梁。按抽象层次分为三类: • 概念数据模型(如E-R模型&#…...

【AI】Mac 安装 OpenClaw 及接入飞书教程

一、安装 Nodejs(必须) 因为 OpenClaw 至少需要运行在 node22 版本环境,因此需要先安装 node 环境 step1:下载并安装 nvm:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash step2&…...

企业 AI 智能体:从 Demo 到规模化落地的技术架构与工程实践

在大模型技术普及的今天,几乎所有企业的技术团队都尝试过搭建 AI 智能体:从简单的客服问答机器人,到能处理基础业务的 AI 助手,大多都能快速做出一个效果亮眼的 Demo。但现实是,超过 90% 的 AI 智能体,最终…...

企业AI智能体进入“人机协作”新阶段:数字员工与人类员工的“混合劳动力”时代

在大模型技术普及的今天,几乎所有企业的技术团队都尝试过搭建 AI 智能体:从简单的客服问答机器人,到能处理基础业务的 AI 助手,大多都能快速做出一个效果亮眼的 Demo。但现实是,超过 90% 的 AI 智能体,最终…...

图片优化新策略:WebP/AVIF格式与懒加载的融合应用

图片优化新策略:WebP/AVIF格式与懒加载的融合应用 在当今数字化时代,图片作为网页内容的重要组成部分,不仅丰富了用户的视觉体验,也直接关系到网页的加载速度和整体性能。随着网络技术的不断进步,图片优化技术也在持续…...

软件无线电:重塑无线通信的未来

引言 在当今这个信息爆炸的时代,无线通信技术如同空气般无处不在,支撑着我们的移动互联网、物联网、广播、导航等方方面面。传统的无线通信设备,其功能通常由专用的硬件电路实现,一旦设计完成,其工作频段、调制方式、通信协议等核心特性就基本固定,难以更改。这种“刚性…...

[操作系统篇|学习笔记]初识操作系统

一.操作系统概念与功能1.1 定义操作系统(Operating System,OS)是管理和控制计算机软硬件资源的系统软件,是用户与计算机硬件之间的接口,也是其他应用软件运行的基础。简单来说就是三点:1.操作系统是系统资源…...

The RAG Process: Retrieval-Augmented Generation Step-by-Step

文章目录RAG简介流程【分片】【索引】向量embedding向量数据库【召回】【重排】【生成】总结流程代码环境准备RAG 参考视频 BV1wc3izUEUb 简介 检索增强生成 RAG(Retrieval-Augmented Generation,检索增强生成)是一种把信息检索&#xff0…...

RL学习记录(更新中)

主要课程来源:小电视赵老师课程:主要针对强化学习原理(实践和编程较少) 目录 前言 第一章 基础概念 第二章 贝尔曼公式 第三章 贝尔曼最优公式 第四章 值迭代与策略迭代 前言 贝尔曼公式:一句话总结&#xff0…...

Spring面试题 01

目录 1. 谈谈你对 AOP 的理解? 2. 谈谈你对 IOC 的理解? 3. 解释下 Spring 支持的几种 Bean 的作用域? 4. 简述 Spring 中的事务的实现方式? 5. 了解 Spring 中的事务传播机制吗? 6. 说一说 Spring 事务的底层实…...

没有学不会的义务之动态内存管理

为什么要有动态内存管理:让程序员自己可以申请和释放空间(数组等开辟空间的大小是固定的)内存中的不同区malloc函数功能:向内存的堆区申请一块连续可用的空间,并返回指向这块空间的起始地址。1.如果开辟成功&#xff0…...

sql注入之sql基本语法

(持续更新)学习网站推荐:www.w3school.com.cnsqlzoo.net一、SELECT查询语句SELECT 列 FROM 表 WHERE 条件;SQL SELECT 语法SELECT 列名称 FROM 表名称以及:SELECT * FROM 表名称1.SELECT population FROM world WHERE name Germany主要目的是输出人口&a…...

字节码优化、存储布局与那次成功的“代码混淆”

# 字节码优化、存储布局与那次成功的“代码混淆”## 引言:从一个小想法到一场技术革命故事要从几年前的一个午后说起。当时我们团队正在为一个嵌入式设备开发一套领域特定语言(DSL)。设备资源有限,我们需要一个轻量级的虚拟机来执…...

简中互联网“四大恶人”批判:一种数字生存境况的技术社会学分析

內容來自知乎:https://www.zhihu.com/question/660840540 # 简中互联网“四大恶人”批判:一种数字生存境况的技术社会学分析 ## 引言:被围困的数字日常 2026年的今天,当你打开手机准备查询地铁线路,仅仅因为起身时轻…...

RAG——RAG生成(大模型)

目录 一、前提 二、大模型发展 三、大模型原理 四、RAG 中如何选择大模型 本文来源:极客时间vip课程笔记 注:后续技术类文章会同步到我的公众号里,搜索公众号 小志的博客 感兴趣的读友可以去找来看看。 一、前提 RAG 的本质是通过为大模型提供外部知识来增强其理解和回答领…...

IntelliJ IDEA 4个必改配置:主题字体+代码提示+免费AI插件,让你的开发体验起飞

IntelliJ IDEA 被誉为 Java 开发最好用的工具,但默认配置不一定适合每个人。默认的暗黑主题在白天长时间开发容易眼疲劳;默认字体偏小,盯着看一会儿眼睛就酸;默认的代码提示严格区分大小写,输入小写就找不到大写开头的…...

HelloWorld的前世今生:用IntelliJ IDEA编写人生第一个Java程序

为什么全世界所有编程语言的第一个例子,都是输出“Hello World”?这个传统来自C语言之父丹尼斯里奇的经典著作《C程序设计语言》。在这本书中,第一个示例程序就是输出“Hello World”。由于C语言是绝大多数编程语言的鼻祖,后续Jav…...

计算机毕业设计springboot高校体育竞赛管理系统 基于SpringBoot的高校体育赛事综合服务平台设计与实现

计算机毕业设计springboot高校体育竞赛管理系统48825p75(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着高校体育事业的蓬勃发展和校园文化建设需求的不断提升,传…...

计算机毕业设计springboot就业岗位推荐系统 基于SpringBoot的智能职位匹配平台设计与实现

计算机毕业设计springboot就业岗位推荐系统a6nq8o76(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着数字化转型的深入推进,人力资源市场正经历从传统招聘模式向智…...

2025年智能座舱交互革命:从语音助手到多模态AI中枢

1. 告别“人工智障”:为什么你的车载语音助手总在关键时刻掉链子? 不知道你有没有过这样的经历:开车时想调低空调温度,对着车机喊了好几声“你好,XX”,它要么没反应,要么答非所问,最…...

R 4.5量化回测合规红线预警:证监会《证券期货业回测系统技术规范》V2.3落地后,这7类代码将被认定为无效回测

第一章:R 4.5量化回测合规性总览R 4.5 版本在统计计算与金融建模领域引入了多项增强机制,尤其在回测框架的可审计性、随机数生成确定性、时间序列对齐一致性及浮点运算精度控制方面,显著提升了量化策略回测结果的合规可信度。监管机构&#x…...

STEP3-VL-10B部署案例:边缘计算节点部署10B模型实现离线多模态推理

STEP3-VL-10B部署案例:边缘计算节点部署10B模型实现离线多模态推理 1. 引言 想象一下,你正在一个网络信号不稳定的野外现场,或者在一个对数据安全要求极高的企业内部,需要快速分析一张复杂的工程图纸,或者理解一段带…...

如何用Dify在24小时内完成传统需2周的人工评估闭环?——金融客服场景下LLM-as-a-judge SLO达标实践白皮书

第一章:LLM-as-a-judge在金融客服评估中的范式革命传统金融客服质量评估长期依赖人工抽检、规则引擎与预设话术匹配,存在覆盖率低、主观性强、反馈滞后等结构性瓶颈。大语言模型作为裁判(LLM-as-a-judge)的引入,正推动…...

通义千问3-Reranker-0.6B实战案例:直播带货话术与商品信息匹配

通义千问3-Reranker-0.6B实战案例:直播带货话术与商品信息匹配 1. 直播带货的痛点与解决方案 直播带货现在火得不得了,但有个问题一直困扰着主播和运营团队:说的话和卖的商品经常对不上。你可能也遇到过这种情况——主播说得天花乱坠&#…...

Emilia数据集:6种语言10万小时语音生成技术的突破与应用

1. Emilia数据集:一个改变游戏规则的多语言语音宝库 如果你最近在关注语音合成(TTS)或者语音生成领域,那你大概率已经听过“Emilia”这个名字了。它就像一个突然出现在舞台中央的超级新星,让整个圈子都兴奋了起来。简…...

第7章:Docker network网络管理_(网络驱动类型)

第7章:Docker network网络管理(网络驱动类型) 在现代容器化应用部署中,Docker网络管理是确保服务可靠通信的关键环节。除了基础的网络连接操作外,Docker提供了一系列高级网络功能,能够满足复杂场景下的网络需求。本文将解析三个高级网络管理命令: docker network connec…...

连续时间马尔科夫链:从理论到生灭过程的应用解析

1. 从排队到种群:为什么我们需要连续时间马尔科夫链? 想象一下,你正在一家网红奶茶店排队。队伍的长度时增时减,有人买完离开(“死亡”),也有新顾客加入队尾(“出生”)。…...

UNIAPP 上架审核指南:精准应对 Guideline 5.1.2 数据追踪与隐私合规

1. Guideline 5.1.2 到底是什么?为什么你的UNIAPP应用会踩坑? 最近不少用UNIAPP开发iOS应用的朋友,在提交App Store Connect审核时,都遇到了一个让人头疼的拒绝理由:Guideline 5.1.2。苹果给出的原文通常很长&#xf…...

文件描述符fd:跨进程共享机制

文件描述符跨进程资源共享机制详解 文件描述符作为 Unix/Linux 系统的核心抽象机制,通过精巧的内核设计实现了高效的跨进程资源共享。下面从技术原理、实现机制和实际应用三个维度深入解析这一过程。 一、核心技术原理 1. 文件描述符的本质 文件描述符实际上是进…...