🐸 青蛙编程网
首页 / C++ / C++ 基础 / 2. 第一个程序

第一个程序:Hello World

这是什么:Hello World = 编程新手的第一个程序,让屏幕打印一句话。

为什么用:上一章配好了环境,这一章跑起你人生第一段 C++——让电脑跟你打招呼。写完第一个程序你才算真正上手:代码不是纸上谈兵,编译出来的二进制真的会跑。

如何用:新建一个 main.cpp,把下面的完整代码抄进去,用 g++ 编译、运行,再逐行拆解这 7 行各自在干什么。

三条环境路

路线 适合谁 说明
Visual Studio 2022 社区版 Windows 用户首选 免费、装完就能写能跑,最省心
VS Code + MinGW-w64 想轻量、爱折腾的 编辑器 + g++ 编译器自由组合
OnlineGDB 今天就想跑代码的 零安装,浏览器里语言选 C++20,粘贴点 Run

本板块的编译命令统一用 g++(三条路都通用,VS 2022 有一键运行按钮,看按钮就行)。

完整代码

新建 main.cpp(.cpp 后缀就是 C++ 源文件的"身份证"),整段写入:

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    std::cout << "你好,世界!这是我写的第一个 C++ 程序" << std::endl;
    return 0;
}

编译并运行

在 main.cpp 所在的文件夹打开命令行(地址栏输 cmd 回车),依次输入:

g++ main.cpp -o main
./main

Windows 用户运行那步写 .\main.exe(或直接 main);Linux/macOS 写 ./main。

你会看到

Hello, World!
你好,世界!这是我写的第一个 C++ 程序

恭喜!🎉 比起 Python 的一行 print,你用了 7 行——但每一行都有它的道理,下面逐行拆解。

逐行解读

代码 作用
#include <iostream> "搬工具箱":把输入输出库带进来,cout(打印)就住在里面
int main() 程序的大门:C++ 固定从 main 函数开始执行,每个程序必须有它
{ } 大括号圈出 main 的"地盘",里面的活干完程序就结束
std::cout << "..." 打印:cout 是屏幕喇叭,<< 把内容"推"给它显示
std::endl 换行(Python 的 print 自带换行,C++ 要自己写)
return 0; 向系统汇报"程序正常结束"(0 = 一切顺利)

和 Python 打印对比

Python C++
打印一句 print("Hi") std::cout << "Hi" << std::endl;
行尾 不用分号 每句话必须以分号结尾
入口 从第一行直接跑 必须从 main 函数跑
编译 无需编译 需要 g++ 编译后才能运行

初看 C++ 啰嗦,但这些"仪式感"换来的是编译器帮你把关每一处细节——少个引号都别想骗过它。

include 搬工具,main 是大门,cout 当喇叭,分号是句号。

常见报错与修复

报错 原因 修复
‘cout’ was not declared 忘了 #include <iostream> 在文件顶部补上
expected ';' before '}' token 某行漏了分号 找到漏分号的行,补上 ;
‘main’ was not declared in this scope 没写 main 函数 确保有 int main() { ... }

⚠️ 新手翻车现场

翻车一:改完代码没重新编译

你改了 cout 里的文字,运行还是旧的

问题:C++ 是编译型语言,源码改完必须重新 g++ 编译,生成新的可执行文件,才能看到新效果。

修正:改完代码 → 再执行一次 g++ main.cpp -o main → 再 ./main。

翻车二:在 Python 习惯下漏写分号

std::cout << "Hi"        // 漏了分号
std::endl;

问题:C++ 每条语句必须以分号结尾,编译器会报错。

修正:补上 std::cout << "Hi" << std::endl;。

动手改

  1. 加一行 std::cout << 2026 << std::endl;——注意数字不用引号
  2. 把两句台词换成你的自我介绍,重新编译运行(改完必须重新编译,否则跑的还是旧程序)
  3. 去掉某行末尾的分号再编译,认识一下 C++ 报错长什么样

下一章:变量与运算,让程序学会记数据 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。