第一章是 C++ 的 “入门钥匙”,核心目标是帮助读者建立 C++ 程序的基本认知 —— 从 “什么是 C++ 程序” 到 “如何编写、编译、运行一个简单程序”,同时引入输入输出、注释、变量、函数等最基础的概念,为后续章节铺垫。

1.1 编写一个简单的 C++ 程序

本节通过 **“Hello, World” 程序 **(编程语言入门的经典案例),展示 C++ 程序的基本结构,同时讲解 “程序如何与操作系统交互”“代码的执行流程”。

1.1.1 第一个程序:输出 “Hello, World”

先看完整代码,再逐行拆解:

#include <iostream>  // 头文件包含int main() {         // 程序入口:main函数    std::cout << "Hello, World!" << std::endl;  // 输出语句    return 0;        // 函数返回值}
代码逐行解析
  1. #include <iostream>:头文件包含

    • #include

      是 C++ 的预处理指令(以#开头,编译前由 “预处理器” 处理),作用是 “将指定头文件的内容拷贝到当前代码中”。

    • <iostream>

      是 C++ 标准库的输入输出流头文件,定义了std::cout(标准输出)、std::cin(标准输入)等核心组件 —— 如果要使用输入输出功能,必须包含这个头文件。

    • 注意:C++ 标准库头文件不带.h后缀(如<iostream>而非<iostream.h>);带.h的头文件(如<stdio.h>)是 C 语言标准库或旧版 C++ 库,现代 C++ 建议优先使用无后缀的标准头文件。

  2. int main():程序的唯一入口

    • int

      :函数的返回类型,表示main()执行结束后会返回一个 “整数” 给操作系统。

    • main

      :函数名(固定,不能修改)。

    • ()

      :括号内是函数的参数列表,此处为空表示main()不接收参数(也可写int main(void),效果相同)。

    • {}

      :花括号内是函数的函数体,即要执行的代码(代码语句必须放在函数体内)。

    • main()

      是 C++ 程序的强制入口函数—— 无论代码有多少其他函数,程序启动后一定会先执行main(),且一个程序只能有一个main()函数(多了会编译报错)。

    • 函数结构解析:

  3. std::cout << "Hello, World!" << std::endl;:输出语句

    • std::cout

      :“标准输出流”(cout是 “console output” 的缩写),属于std命名空间(后续 1.2 节详解命名空间),必须加std::才能使用。

    • <<

      :“输出运算符”(也叫 “插入运算符”),作用是 “将右侧的内容插入到左侧的流中”—— 此处是将字符串"Hello, World!"插入到std::cout流,最终显示在控制台。

    • "Hello, World!"

      字符串字面量(用双引号包裹的字符序列),是要输出的内容。

    • std::endl

      :“换行符”(endl是 “end line” 的缩写),作用有两个:① 在控制台输出一个换行(让后续内容显示在新行);② 刷新输出缓冲区(确保内容立即显示,避免因缓冲区未满导致的延迟)。

    • ;

      :C++ 的语句结束符—— 任何一条可执行语句必须以;结尾,否则编译报错(这是 C++ 与 Python、Java 等语言的明显区别)。

    • 这是 C++ 的标准输出语句,作用是将内容打印到 “控制台”(如 Windows 的命令提示符、Linux 的终端)。

    • 各部分含义:

  4. return 0;:函数返回值

    • 返回0表示 “程序正常结束”—— 这是操作系统约定的规则(0 对应 “成功状态码”)。

    • 若返回非 0 值(如return 1;),表示 “程序异常结束”(非 0 值为 “错误状态码”,不同值可代表不同错误类型,供操作系统或其他程序判断错误原因)。

    • return

      是 C++ 的返回语句,作用是 “结束当前函数,并将指定值返回给调用者”。

    • 对于main()函数:

    • 注意:C++11 标准允许main()函数省略return 0;—— 此时编译器会自动在main()函数体末尾添加return 0;,但为了代码清晰,建议显式写出。

1.1.2 程序的编译与运行

C++ 是编译型语言,代码不能直接运行,必须经过 “编译→链接” 两步生成可执行文件后才能运行。以 Windows(使用 MinGW 编译器)和 Linux(使用 GCC 编译器)为例,流程如下:

1. 保存代码

将上述 “Hello, World” 代码保存为文件,文件名后缀必须是.cpp(C++ 源文件的标准后缀,也可用.cc.cxx,但.cpp最通用),例如hello.cpp

2. 编译(将源文件转为目标文件)

打开终端 / 命令提示符,进入代码所在目录,执行编译命令:

  • Windows(MinGW):g++ hello.cpp -o hello.exe

  • Linux(GCC):g++ hello.cpp -o hello

    • g++

      :C++ 编译器(GNU Compiler Collection 的 C++ 编译器)。

    • hello.cpp

      :要编译的源文件。

    • -o hello.exe

      /-o hello:指定生成的 “目标可执行文件” 的名字(Windows 下后缀为.exe,Linux 下无后缀)。

3. 运行可执行文件
  • Windows:在命令提示符中输入hello.exe,按回车,控制台会显示Hello, World!

  • Linux:在终端中输入./hello./表示 “当前目录”),按回车,终端会显示Hello, World!

常见编译错误
  • 忘记写;:编译时会提示 “syntax error before '}' token”(花括号前语法错误)。

  • 漏写std:::如直接写cout << ...,会提示 “'cout' was not declared in this scope”(cout 未在当前作用域声明)。

  • 文件名后缀错误:如用.c(C 语言后缀),编译器可能按 C 语言规则编译,导致std::cout等 C++ 特性报错。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐