Rust
Rust 核心篇 (十八):智能指针全解——Box、Rc、Arc 与 RefCell 内部可变性
Waitwalker2026-08-2916 min
## 1. 智能指针家族概览
| 智能指针 | 内存位置 | 所有权 | 线程安全 | 检查时机 |
| :--- | :--- | :--- | :--- | :--- |
| `Box<T>` | 堆 | 唯一所有者 | 取决于 T | 编译期 |
| `Rc<T>` | 堆 | 共享所有权 | 否 (单线程) | 编译期 |
| `Arc<T>` | 堆 | 共享所有权 | 是 (原子操作) | 编译期 |
| `RefCell<T>` | 栈/堆 | 配合包装使用 | 否 | 运行期 |
```rust
use std::rc::Rc;
use std::cell::RefCell;
// 共享且可变的数据节点
let value = Rc::new(RefCell::new(42));
let a = Rc::clone(&value);
*a.borrow_mut() += 10;
println!("当前值: {}", value.borrow());
```
#Rust#智能指针#内部可变性#内存管理
回到文章列表 →