C++ 面试核心知识点总结
一、C++ 语法基础
变量的使用和生命周期
全局变量在程序任何地方均可访问,通常贯穿整个执行周期;局部变量定义在函数或代码块内,作用域受限;静态变量通过 static 声明,具有特定的存储属性。
| 变量类型 | 声明方式 | 初始化时机 | 内存位置 | 作用域 |
|---|---|---|---|---|
| 全局变量 | 函数外部 | 声明时 | 常量区(静态存储区) | 整个文件 |
| 局部变量 | 函数/代码块内 | 建议声明时 | 栈区 | 函数内部 |
| 静态全局 | 加 static | 声明或首次使用前 | 常量区(静态存储区) | 整个文件 |
| 静态局部 | 加 static | 声明或首次使用前 | 常量区(静态存储区) | 函数内部 |
命名空间的作用
命名空间主要用于避免命名冲突,将相关函数和类封装在一起,提高代码的组织性和可读性。标准库通常使用 std:: 前缀,也可通过 using namespace std; 简化调用。
namespace MyNamespace { int x; void func(); }
// 标准命名空间
std::cout << "Hello, world!" << std::endl;
include " " 和 <> 的区别
#include <文件名> 用于包含标准库头文件,编译器按标准路径搜索。
#include "文件名" 用于包含用户自定义或项目内部头文件,优先在当前目录查找。
指针与引用
指针是存储变量地址的特殊数据类型,可通过解引用操作符 * 访问数据,使用 & 获取地址。
指针数组是元素为指针的数组,常用于动态管理一组指针。
int *ptrArray[5]; // 包含 5 个 int* 指针的数组


