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


