裸指针操作
Rust提供了*const T
(不变)和*mut T
(可变)两种指针类型。因为这两种指针和C语言中的指针十分相近,所以叫其原生指针(Raw Pointer)。
原生指针具有以下特点:
- 并不保证指向合法的内存。比如很可能是一个空指针。
- 不能像智能指针那样自动清理内存。需要像 C 语言那样手动管理内存。
- 没有生命周期的概念,也就是说,编译器不会对其提供借用检查。
- 不能保证线程安全。
可见,原生指针并不受Safe Rust提供的那一层“安全外衣”保护,所以也被称为“裸指针”。
Rust提供了*const T
(不变)和*mut T
(可变)两种指针类型。因为这两种指针和C语言中的指针十分相近,所以叫其原生指针(Raw Pointer)。
原生指针具有以下特点:
可见,原生指针并不受Safe Rust提供的那一层“安全外衣”保护,所以也被称为“裸指针”。