C++ 面试核心知识点总结
本文梳理了 C++ 岗位面试中高频出现的考点,涵盖语法基础、STL 标准库、内存管理、类特性及相关工具。掌握这些内容,基本能应对大部分技术面试的考察。
一、C++ 语法基础
变量的使用和生命周期
全局变量在程序任何地方可访问,生命周期贯穿整个程序;局部变量定义在函数或代码块内,仅在该作用域有效;静态变量通过 static 声明,生命周期延长至程序结束但作用域受限。
| 变量类型 | 声明方式 | 存储位置 | 作用域 | 生命周期 |
|---|---|---|---|---|
| 全局变量 | 函数外部声明 | 常量区(静态存储区) | 整个文件 | 全局 |
| 局部变量 | 函数或代码块内 | 栈区 | 函数内部 | 函数调用期间 |
| 静态全局 | 加 static 关键字 | 常量区(静态存储区) | 整个文件 | 全局 |
| 静态局部 | 加 static 关键字 | 常量区(静态存储区) | 函数内部 | 全局(值持久化) |
命名空间的作用
命名空间主要用于避免命名冲突,将相关函数和类封装在一起,提高代码的组织性和可读性。例如:
namespace MyNamespace { int x; void func(); }
标准命名空间通常需加 std:: 前缀或使用 using namespace std;。
include "" 和 <> 的区别
#include <文件名>:包含标准库头文件,编译器按标准路径搜索。#include "文件名":包含用户自定义或项目内部头文件,优先在当前目录查找。
指针与引用
指针是存储变量地址的特殊数据类型,可通过解引用操作符 * 访问数据。
int *ptr = &x; // ptr 存储 x 的地址
引用是变量的别名,使用 & 符号定义,必须在定义时初始化且不可更改绑定对象。


