第一个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>:输入输出流头文件,包含 cincout

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) → 预处理 → 编译 → 汇编 → 链接 → 可执行文件

详细步骤:

  1. 预处理:处理 #include#define 等指令
  2. 编译:将源代码编译成汇编代码
  3. 汇编:将汇编代码转换成目标文件(.o/.obj)
  4. 链接:将目标文件链接成可执行文件

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++程序的步骤:

  1. 编写源代码(.cpp文件)
  2. 使用编译器编译成可执行文件
  3. 运行程序

关键要点:

概念 说明
#include 包含头文件
main() 程序入口
std::cout 标准输出
std::cin 标准输入
<< 插入运算符
>> 提取运算符
return 0 程序正常结束

下一步,让我们学习C++的基础语法!

最后更新:2026-03-26