C++ 基础语法

环境装好后,我们来系统过一遍 C++ 的基础语法。这一章不涉及复杂概念,只讲程序"长什么样"——结构、注释、命名规范、关键字、命名空间。读完你就能看懂任何 C++ 代码的大致框架。

一、C++ 程序的基本结构

一个可执行的 C++ 程序最少包含三部分:include 预处理指令、main 函数、返回值。看这个例子:

// 1. 预处理指令:引入标准库
#include <iostream>
#include <string>

// 2. 使用标准库名字空间(教程图省事这么写)
using namespace std;

// 3. 主函数:程序入口
int main() {
    string name = "C++";
    cout << "Hello, " << name << "!" << endl;
    return 0;   // 返回 0 表示正常退出
}
// 编译运行后输出: Hello, C++!!

几个要点:

二、注释

C++ 的注释规则和 C/Java/JS 完全一致:

// 这是单行注释,双斜杠开头,到行尾结束

/* 这是多行注释,
   可以跨多行,
   用斜杠星号包裹 */

/*
   块注释常用于:
   - 文件开头的版权/说明
   - 临时禁用一大段代码
   - 函数的详细说明
*/

// 现代注释规范:为函数、类、复杂逻辑写注释
// 解释"为什么",而不是"做了什么"——做了什么代码本身已经说明

注释会被编译器完全忽略,只给人看。写注释的好习惯:

三、分号与花括号

C++ 和 C/Java 一样,每条语句必须以分号结尾。一个语句可以跨多行,只要末尾有分号就行:

四、标识符命名规范

标识符是程序员自己起的名字(变量、函数、类型)。规则:

// 标识符命名规则:
// 1. 由字母、数字、下划线组成
// 2. 不能以数字开头
// 3. 区分大小写(age 和 Age 是两个变量)
// 4. 不能和关键字重名

int age = 20;          // 合法
int _count = 0;        // 合法(下划线开头)
int totalPrice = 99;   // 合法(camelCase 驼峰命名)
int TotalPrice = 99;   // 合法(PascalCase,通常用于类名)
// int 2nd = 1;        // 非法:数字开头
// int my-var = 1;     // 非法:含连字符
// int class = 1;      // 非法:class 是关键字

C++ 社区有几套流行的命名约定,主流的是:

五、命名空间(namespace)

命名空间是 C++ 解决"命名冲突"的机制。比如你写了 log() 函数,别人也写了 log(),一起用就冲突。命名空间相当于给名字"加姓氏":

// 命名空间(namespace):避免命名冲突
// 比如两个库都有一个 log() 函数,用 namespace 隔离

namespace mylib {
    int version = 2;
    void log() {
        cout << "mylib log" << endl;
    }
}

namespace otherlib {
    int version = 1;
    void log() {
        cout << "otherlib log" << endl;
    }
}

int main() {
    cout << mylib::version << endl;       // 2
    cout << otherlib::version << endl;    // 1
    mylib::log();                          // mylib log
    return 0;
}

C++ 标准库所有内容都放在 std 名字空间里(读作"standard")。所以 cout 真名其实是 std::cout::作用域解析运算符

六、如何使用 std?

三种写法各有取舍:

// 标准库所有内容都在 std 名字空间里
// 三种使用方式:

// 方式 1:全部引入(教程常用,生产代码不推荐)
using namespace std;
cout << "hi" << endl;

// 方式 2:只引入需要的(推荐折中方案)
using std::cout;
using std::endl;
using std::string;
cout << "hi" << endl;

// 方式 3:每次都加前缀(最严谨,大型项目首选)
std::cout << "hi" << std::endl;

七、C++ 的关键字

C++ 关键字比 C 多得多(C 只有 32 个,C++17 有 95+ 个)。这是 C++ "庞大" 的根源之一,但常用的就二十来个。按用途分组记忆:

// C++ 关键字共约 95 个(C++17),不能用作标识符
// 按用途分组记忆更容易:

// 数据类型:int, char, bool, double, float, void,
//            long, short, unsigned, signed, auto, wchar_t

// 变量声明:const, static, extern, mutable, constexpr,
//           thread_local, register(已弃用), volatile

// 控制流:if, else, switch, case, default, for, while, do,
//         break, continue, return, goto

// 函数与类型:struct, class, union, enum, typedef, using,
//             virtual, override, final, friend, this,
//             public, private, protected

// 面向对象:new, delete, operator, sizeof, typeid

// 异常:try, catch, throw, noexcept

// 模板:template, typename, requires(C++20)

// 命名空间:namespace

// 类型转换:static_cast, dynamic_cast, const_cast, reinterpret_cast

// 其他:true, false, nullptr, alignof, alignas, decltype,
//       static_assert, constexpr, asm

不用全部背下来——用到的时候自然会记住。本系列每一篇都会介绍几个新关键字。

小结

这一章你了解了 C++ 程序的整体骨架:include → using namespace → main;知道了注释规则、分号花括号、命名规范;第一次接触了关键字和命名空间。下一篇我们看 C++ 的变量——这是写任何代码之前必须搞清楚的事。

← 上一篇 C++ 环境搭建

下一篇 C++ 变量

✈️💬