(1.1)C++Primer 第一章 简单C++程序编译
第一章是 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; // 函数返回值}
代码逐行解析
-
#include <iostream>:头文件包含#include是 C++ 的预处理指令(以
#开头,编译前由 “预处理器” 处理),作用是 “将指定头文件的内容拷贝到当前代码中”。<iostream>是 C++ 标准库的输入输出流头文件,定义了
std::cout(标准输出)、std::cin(标准输入)等核心组件 —— 如果要使用输入输出功能,必须包含这个头文件。-
注意:C++ 标准库头文件不带
.h后缀(如<iostream>而非<iostream.h>);带.h的头文件(如<stdio.h>)是 C 语言标准库或旧版 C++ 库,现代 C++ 建议优先使用无后缀的标准头文件。
-
int main():程序的唯一入口int:函数的返回类型,表示
main()执行结束后会返回一个 “整数” 给操作系统。main:函数名(固定,不能修改)。
():括号内是函数的参数列表,此处为空表示
main()不接收参数(也可写int main(void),效果相同)。{}:花括号内是函数的函数体,即要执行的代码(代码语句必须放在函数体内)。
main()是 C++ 程序的强制入口函数—— 无论代码有多少其他函数,程序启动后一定会先执行
main(),且一个程序只能有一个main()函数(多了会编译报错)。-
函数结构解析:
-
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 的终端)。
-
各部分含义:
-
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 hellog++: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++ 特性报错。
更多推荐
所有评论(0)