第一个C++程序 - Hello World #
一、编写第一个程序 #
1.1 创建源文件 #
创建一个名为 hello.cpp 的文件:
cpp
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
1.2 编译程序 #
打开终端,进入文件所在目录,执行编译命令:
bash
g++ hello.cpp -o hello
编译成功后,会生成可执行文件 hello(Windows下为 hello.exe)。
1.3 运行程序 #
bash
# Linux/macOS
./hello
# Windows
hello.exe
输出结果:
text
Hello, World!
二、程序结构解析 #
让我们详细分析这个简单的程序:
cpp
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
2.1 预处理指令 #
cpp
#include <iostream>
#include:预处理指令,用于包含头文件<iostream>:输入输出流头文件,包含cin、cout等
C++标准头文件不带 .h 后缀。
2.2 main函数 #
cpp
int main() {
// 函数体
return 0;
}
int:返回类型,表示返回整数main:函数名,程序入口点():参数列表(可以为空){}:函数体return 0:返回0表示程序正常结束
main函数是C++程序的入口,每个C++程序必须有且只有一个main函数。
2.3 输出语句 #
cpp
std::cout << "Hello, World!" << std::endl;
std:标准命名空间cout:标准输出流对象(character output)<<:插入运算符,将数据发送到输出流"Hello, World!":字符串字面量endl:换行符并刷新缓冲区
2.4 语句与分号 #
cpp
std::cout << "Hello, World!" << std::endl; // 分号结束
每条语句必须以分号 ; 结尾。
三、编译与运行过程 #
3.1 编译过程 #
text
源代码(.cpp) → 预处理 → 编译 → 汇编 → 链接 → 可执行文件
详细步骤:
- 预处理:处理
#include、#define等指令 - 编译:将源代码编译成汇编代码
- 汇编:将汇编代码转换成目标文件(.o/.obj)
- 链接:将目标文件链接成可执行文件
3.2 查看编译过程 #
bash
# 只进行预处理
g++ -E hello.cpp -o hello.i
# 只进行编译(生成汇编代码)
g++ -S hello.cpp -o hello.s
# 只进行汇编(生成目标文件)
g++ -c hello.cpp -o hello.o
# 完整编译链接
g++ hello.cpp -o hello
四、使用命名空间 #
4.1 使用using声明 #
cpp
#include <iostream>
using std::cout;
using std::endl;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
4.2 使用using指令 #
cpp
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
注意:在大型项目中,不推荐使用 using namespace std;,可能导致命名冲突。
4.3 最佳实践 #
cpp
#include <iostream>
int main() {
// 推荐:使用完整的命名空间限定
std::cout << "Hello, World!" << std::endl;
return 0;
}
五、命令行参数 #
main函数可以接收命令行参数:
cpp
#include <iostream>
int main(int argc, char* argv[]) {
std::cout << "参数个数: " << argc << std::endl;
for (int i = 0; i < argc; i++) {
std::cout << "参数" << i << ": " << argv[i] << std::endl;
}
return 0;
}
运行:
bash
./hello hello world 123
输出:
text
参数个数: 4
参数0: ./hello
参数1: hello
参数2: world
参数3: 123
参数说明:
argc:参数个数(argument count)argv:参数数组(argument vector)argv[0]:程序名称
六、输入输出基础 #
6.1 输出 #
cpp
#include <iostream>
int main() {
// 输出字符串
std::cout << "Hello";
// 输出数字
std::cout << 123;
// 输出多个值
std::cout << "结果是: " << 100 << std::endl;
// 换行方式
std::cout << "方式1" << std::endl; // 换行并刷新缓冲区
std::cout << "方式2\n"; // 只换行
return 0;
}
6.2 输入 #
cpp
#include <iostream>
#include <string>
int main() {
std::string name;
int age;
std::cout << "请输入姓名: ";
std::cin >> name;
std::cout << "请输入年龄: ";
std::cin >> age;
std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;
return 0;
}
6.3 读取整行 #
cpp
#include <iostream>
#include <string>
int main() {
std::string line;
std::cout << "请输入一行文字: ";
std::cin.ignore(); // 清除缓冲区
std::getline(std::cin, line);
std::cout << "你输入的是: " << line << std::endl;
return 0;
}
七、常见错误 #
7.1 缺少分号 #
cpp
std::cout << "Hello" // 错误:缺少分号
错误信息:
text
error: expected ';' before ...
7.2 大小写错误 #
cpp
Std::cout << "Hello"; // 错误:Std应为std
COUT << "Hello"; // 错误:COUT应为cout
C++区分大小写。
7.3 缺少头文件 #
cpp
int main() {
std::cout << "Hello"; // 错误:未包含iostream
return 0;
}
错误信息:
text
error: 'cout' is not a member of 'std'
7.4 忘记return #
cpp
int main() {
std::cout << "Hello";
// 没有return语句
}
在C++中,main函数可以省略return语句,默认返回0。
7.5 中文乱码 #
Windows下可能出现中文乱码:
cpp
#include <iostream>
#include <windows.h> // Windows专用
int main() {
// 设置控制台编码为UTF-8
SetConsoleOutputCP(65001);
std::cout << "你好,世界!" << std::endl;
return 0;
}
八、注释 #
8.1 单行注释 #
cpp
// 这是单行注释
int x = 10; // 行尾注释
8.2 多行注释 #
cpp
/*
* 这是多行注释
* 可以跨越多行
*/
int main() {
return 0;
}
8.3 文档注释 #
cpp
/**
* @brief 计算两个数的和
* @param a 第一个数
* @param b 第二个数
* @return 两数之和
*/
int add(int a, int b) {
return a + b;
}
九、代码风格 #
9.1 缩进与空格 #
cpp
// 推荐:4空格缩进
int main() {
if (true) {
std::cout << "Hello" << std::endl;
}
return 0;
}
9.2 命名规范 #
| 类型 | 规范 | 示例 |
|---|---|---|
| 变量 | 小写+下划线 | user_name |
| 常量 | 全大写+下划线 | MAX_SIZE |
| 函数 | 小写+下划线 或 驼峰 | getUserName() |
| 类 | 大驼峰 | UserInfo |
| 宏 | 全大写+下划线 | PI_VALUE |
9.3 花括号风格 #
cpp
// K&R风格(推荐)
int main() {
if (true) {
// ...
}
}
// Allman风格
int main()
{
if (true)
{
// ...
}
}
十、总结 #
编写C++程序的步骤:
- 编写源代码(.cpp文件)
- 使用编译器编译成可执行文件
- 运行程序
关键要点:
| 概念 | 说明 |
|---|---|
#include |
包含头文件 |
main() |
程序入口 |
std::cout |
标准输出 |
std::cin |
标准输入 |
<< |
插入运算符 |
>> |
提取运算符 |
return 0 |
程序正常结束 |
下一步,让我们学习C++的基础语法!
最后更新:2026-03-26