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

Hello,World! [从 0 开始的 C++ 之旅 1.1]

Hello,World

让我们先从一段最简单的 HelloWorld 程序说起

#include <iostream>
using namespace std;
int main() {cout << "Hello,World!" << endl;return 0;
}

在 IDE 运行这段代码,可以看到输出

Hello,World!

建议你先将这段代码记下来
接下来我们来拆解这段代码的含义

#include <iostream>
using namespace std;

这一段代码引用了头文件 iostream 并声明程序会使用标准命名空间(即 std),其中 iostream 包含了我们在第4行使用的 cout 语句,而这个 cout 正处在标准命名空间下

int main() {//省略return 0;
}

这是整个程序的主函数,每一个能编译运行的完整 C++ 代码都应该包含这一部分。当程序被运行时,程序就会从左到右,从上到下地逐行运行大括号里的语句,一直到 return 0。关于函数和 return 的知识会在之后进行讲解。你在这里可以先把在主函数里包含的 return 0 理解为正常退出程序。

cout << "Hello,World!" << endl;

接下来开始讲 C++ 的语法规则

注释

先提示说一嘴,如果你见到像这样的东西:

// 我叫单行注释
/*我叫多行注释(故名思意,我可以跨行)
*/

它们并不会被实际运行,它们仅仅只是注释。注释是用来帮助开发者(包括你自己)理解程序的,可以用 // 开启一行单行注释

// 现在在这里随便写都不会报错

/* 开始一段多行注释,用 */ 结束多行注释。但是多行注释不能嵌套

// 这其实是错的
/* 这是外面 /* 这是里面 */ */// 这才是对的
/* 这是第一段 /* 这是第二段 */

接下来我会多次使用注释进行注解,因此请务必牢记

分号作为结束符

如果你尝试过把 return 0cout 语句挤到同一行:

#include <iostream>
using namespace std;
int main() {cout << "Hello,World!" << endl;return 0;
}

编译运行,你会发现程序依旧可以正常运行 震惊 Python 一百年!为什么?仔细观察原来的程序,你会发现这几条语句后面有个分号

#include <iostream>
using namespace std;
int main() {cout << "Hello,World!" << endl; // ← 这里!return 0; // ← 这里也有!
}

在 C++ 中,一个分号代表着一个语句的结束。可以说分号就是 C++ 中的结束符

使用 cout 输出

依旧是这段程序,尝试更改一下双引号内的内容

#include <iostream>
using namespace std;
int main() {cout << "Goodbye,World!" << endl;return 0;
}

再一次运行程序:

Goodbye,World!

在 C++ 中,我们通常使用 cout 进行输出。在下一章节我们会详细讲解

查看报错

写代码的过程并不是一帆风顺的,让我们先故意制造几个错误,来看看编译器有什么反应。我们先来把分号去掉,将其保存为 main.cpp 并尝试编译运行

#include <iostream>
using namespace std;
int main() {cout << "Hello,World!" << endlreturn 0
}

假如你和我一样使用 GCC(或者说是 MinGW)的话,你应该会看到类似的内容:
img
编译器这次给出了提示。它告诉你在 main.cpp 第 4 行第 35 个字符处附近有个错误(并且现在它还细心的用红箭头帮你指出了是哪里出错了)

main.cpp:4:35: error: expected ';' before 'return'

这句话的意思是,编译器希望在 return 前面找到分号,但是那里并没有分号
编译器一般都会指出你的语法错误(有时候它还会给出警告,那是后话了),这为我们 Debug 提供了极大的便利,所以在程序编译时关注报错信息至关重要。其实不同编译器的报错信息是不同的,如果你看不懂编译器的报错,你可以把它复制下来放到搜索引擎里面查一下。你大可自行修改程序,查看报错,然后进行搜索,我鼓励你这么做!因为这样做对你理解它们的作用有很大用途

总结

  • C++ 输出 Hello,World 的程序长这个样子:
#include <iostream>
using namespace std;
int main() {cout << "Hello,World!" << endl;return 0;
}

其中第一行和第二行的作用是引用头文件 iostream 并声明程序会使用标准命名空间,下面的是主函数,代码会从主函数开始从左到右,从上到下逐行运行,第五行的 return 0 在这里的作用是正常退出程序

  • 注释用来帮助理解程序,单行注释以 // 开头,而多行注释以 /* 开头,*/ 结尾,多行注释不能嵌套
  • C++ 中,';' 是结束符,标准着一条语句的结束
  • 在这段程序中,cout 被用于输出 Hello,World!,在这里改变双引号内的内容可以改变输出内容
  • 当程序出现错误时(准确来说是语法错误),编译器会报错,此时要根据报错信息修改程序

点我跳转到下一节:输入输出 从 0 开始的 C++ 之旅 1.2

http://www.jsqmd.com/news/1296831/

相关文章:

  • 全面掌握NBTExplorer:高效编辑Minecraft游戏数据的跨平台NBT编辑器
  • Zotero插件市场:如何用3个步骤彻底改变你的学术工具管理体验?
  • svmjs实战教程:用JavaScript实现异或问题分类,掌握SVM训练技巧
  • 智能体面试准备(十一):Agent 评估体系——轨迹、工具选择与成功率的量化方法
  • 2026年旧衣服回收能当场拿到现金吗?上门回收流程与平台推荐对比 - 快递物流资讯
  • 揭秘VengeanceUI核心技术:GSAP动画与Three.js 3D效果的完美结合
  • 如何快速安装BetterNCM插件管理器:网易云音乐PC版终极增强指南
  • 从ChatGPT到Codex:AI开发为什么正在进入多Agent协作阶段?
  • 沟槽MOS(Trench MOSFET)——把电流“直译“成效率的秘密
  • IoTaWatt Open WiFi Electric Energy Monitor:打造智能家庭能源管理系统的终极指南
  • 免费解锁9大网盘下载速度!网盘直链下载助手终极使用指南
  • 深入理解C++ const:从语法到实战的常量正确性指南
  • 2026山东舞蹈艺考集训机构盘点:实用选校参考 - 谁都没有我好看
  • 如何快速制作OpenCore引导盘:Windows环境下的完整配置指南
  • 以三件套为起点,燃气安全监管平台如何打通全链条闭环
  • Embedding不是黑箱!:用PyTorch逐层可视化BERT/CLIP/SPLADE向量生成路径(附可复现Notebook)
  • vue-monaco实战案例:构建支持多语言的在线代码编辑平台(附完整代码)
  • 2026 年现阶段,冕宁评价高的移动空调回收挂机空调回收厂家联系方式,这玩意儿还能这么处理?旧空调别乱卖,两种机型回收都能赚外快-添运回收 - 行业严选官
  • 告别APA格式噩梦:Word参考文献一键转换终极指南
  • 分布式事务:从“原子性“到“最终一致“
  • Matlab实现动态系统故障诊断与容错控制技术
  • 4000亿智慧高速大考:一条路500公里,AI算力怎么铺?
  • Parquet Viewer:浏览器端Parquet文件分析的终极指南
  • WinBtrfs实战指南:Windows平台Btrfs文件系统完全手册
  • CH9241实现快充线一拖二
  • 输入输出 [从 0 开始的 C++ 之旅 1.2]
  • 隐患与挑战,从爆发期到主动防御的转型
  • 2026年芜湖婚姻家事律师品牌实力推荐 王肇逵律师等5位谁更值得选 - 本地品牌推荐
  • 房山公司注销代办,靠谱推荐:北京孵财管理咨询 - 余小铁
  • AI 赋能项目管理工具:从痛点解决到效能跃迁实战