C++基础:动态内存分配、输入输出与命名空间详解
一、动态内存开辟与释放
动态内存管理是C++高效资源利用的关键,通过 new
和 delete
操作堆区空间。
1. 动态开辟单个数据
int* a = new int; // 未初始化
int* b = new int(); // 初始化为0
2. 动态开辟数组
int* arr = new int[5]; // 开辟长度为5的整型数组
3. 释放内存
delete a; // 释放单个数据
delete[] arr; // 释放数组
注意:
new
和delete
必须成对使用,避免内存泄漏。- 数组释放必须用
delete[]
,否则行为未定义。
二、输入输出流(cin/cout)
C++通过 std::cin
和 std::cout
实现标准输入输出。
1. 基本用法
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入数字: "; // 输出提示
cin >> num; // 读取输入
cout << "结果: " << num << endl; // 输出结果并换行
return 0;
}
2. 关键组件
组件 | 作用 | 示例 |
---|---|---|
std::cin |
标准输入流 | cin >> x; |
std::cout |
标准输出流 | cout << x; |
std::endl |
插入换行并刷新缓冲区 | cout << endl; |
提示:
endl
比"\n"
更安全,确保立即刷新输出缓冲区。
三、命名空间(Namespace)
命名空间用于解决多文件中的标识符命名冲突。
1. 定义命名空间
namespace MySpace {
int value = 10;
void print() { cout << value; }
}
2. 使用命名空间
直接指定:
MySpace::value = 20; MySpace::print();
全局打开:
using namespace MySpace; value = 30; // 直接访问
3. C++标准库命名空间
#include <iostream>
using namespace std; // 使用std命名空间(包含cin/cout等)
关键点:
- C语言无命名空间,C++库(如
<iostream>
)封装在std
中。- 避免全局使用
using namespace std;
在大型项目中,防止污染全局作用域。
总结
- 动态内存:使用
new
/delete
精准控制堆区生命周期。 - I/O流:
cin
和cout
简化交互,endl
确保输出即时性。 - 命名空间:隔离代码逻辑,避免全局污染。
掌握这些基础是进阶C++开发的必经之路!欢迎在评论区交流讨论。💻