C++ 面试核心知识点梳理
本文总结了 C++ 岗位面试中常见的基础问题,涵盖语法基础、STL 标准库、内存管理、面向对象特性及辅助工具。掌握这些内容,基本能满足大多数 C++ 开发岗位的考核要求。
一、C++ 语法基础
变量的使用、生命周期与初始化
全局变量在程序任何地方可访问,通常在整个程序执行期间有效;局部变量定义在函数或代码块内部,仅在该范围内可见;静态变量通过 static 声明,具有特定的存储期。
| 变量类型 | 声明方式 | 初始化建议 | 内存位置 | 作用域 | 生命周期 |
|---|---|---|---|---|---|
| 全局变量 | 函数外部声明 | 声明时初始化 | 静态存储区 | 整个文件 | 程序结束 |
| 局部变量 | 函数/代码块内 | 建议声明时初始化 | 栈区 | 函数内部 | 函数调用期间 |
| 静态全局 | 加 static 关键字 | 声明或首次使用前 | 静态存储区 | 整个文件 | 程序结束 |
| 静态局部 | 加 static 关键字 | 声明或首次使用前 | 静态存储区 | 函数内部 | 程序结束(值持久化) |
命名空间的作用
命名空间主要用于避免命名冲突,将相关函数和类封装在一起,提高代码的组织性和可读性。使用时需注意标准命名空间 std 的引入方式,推荐显式使用 std:: 前缀以避免污染全局命名空间。
namespace MyNamespace { int x; void func(); }
// 标准用法
std::cout << "Hello, world!" << std::endl;
include "" 和 <> 的区别
#include <文件名> 用于包含标准库头文件,编译器按标准路径搜索;#include "文件名" 用于包含用户自定义或项目内部头文件,优先在当前目录查找。
指针与引用
指针是存储变量地址的特殊数据类型,通过解引用操作符 * 访问数据,使用地址运算符 & 获取地址。引用则是变量的别名,必须在定义时初始化且不可更改绑定对象。


