能直接运行的最小C++程序必须包含四行:#include <iostream>、using namespace std;、int main()、cout << "Hello World!" << endl;,缺一不可且大小写、符号须完全正确。

直接能跑的最小可执行版本就是这四行,缺一不可:#include<iostream>、using namespace std;、int main()、cout << "Hello World!" << endl;。少一行或写错大小写、分号、引号,都会编译失败。
头文件必须用 <iostream>,不能写成 <iostream.h>
C++ 标准库头文件不带 .h 后缀,<iostream.h> 是旧式 C 风格或非标准实现(比如某些老 Turbo C 环境),现代编译器(g++、MSVC、Clang)会直接报错 fatal error: iostream.h: No such file or directory。
-
#include <iostream>提供cin、cout、endl等流对象 - 如果误写成
#include "iostream"(双引号),编译器会先在当前目录找,找不到才去标准路径,容易因同名文件干扰导致意外行为 - 用
<stdio.h>虽然能编译(C++ 兼容 C 头文件),但printf不是 C++ 推荐风格,且无法直接输出自定义类型
using namespace std; 不加会怎样?
不加这句,cout 和 endl 就不在全局作用域里,编译器会报错 ‘cout’ was not declared in this scope。
- 两种合法写法:要么加
using namespace std;,要么每次显式写std::cout和std::endl - 新手建议加,避免重复打
std::;但在大型项目中,应避免using namespace std;全局引入,防止命名冲突(比如你自己定义了endl函数) -
std是 C++ 标准库所有符号所在的命名空间,不是关键字,不能拼错成stl或stdn
main 函数签名和返回值不能省略
必须是 int main(),不能写成 void main() 或 main()(无返回类型)。后者在 C++ 标准中非法,g++ 会警告 return type defaults to ‘int’,MSVC 可能直接拒绝编译。
立即学习“C++免费学习笔记(深入)”;
-
int main()是唯一被标准认可的主函数形式(另有int main(int argc, char* argv[])带参数的变体) - 末尾
return 0;可以省略(C++11 起,main函数结尾隐式返回 0),但显式写出更清晰,尤其调试时便于加断点 - 函数体必须用
{}包裹,哪怕里面只有一行;漏掉{或}会导致语法错误,错误信息往往指向下一行,容易误判
编译命令和文件后缀别踩坑
源文件必须保存为 .cpp 后缀(如 hello.cpp),不能用 .c 或 .txt;否则 g++ 可能按 C 语言规则编译,报 ‘cout’ was not declared。
- Linux/macOS 编译命令:
g++ hello.cpp -o hello,然后运行./hello - Windows 下用 MSVC,需确保是 C++ 项目(不是“空项目”后手动加
.c文件),否则默认不启用 C++ 标准库链接 - VS Code 用户注意:如果没配好 C++ 扩展和
c_cpp_properties.json,即使代码全对,也会提示Identifier "cout" is undefined—— 这是 IntelliSense 问题,不影响实际编译
最容易被忽略的是引号和分号:字符串必须用英文双引号 " ",不能用中文引号或单引号;每条语句末尾的分号 ; 是语句结束符,漏掉会导致后续行被合并解析,错误位置常偏离真实出错点。


















