裸指针操作

Rust提供了*const T(不变)和*mut T(可变)两种指针类型。因为这两种指针和C语言中的指针十分相近,所以叫其原生指针(Raw Pointer)。

原生指针具有以下特点:

  • 并不保证指向合法的内存。比如很可能是一个空指针。
  • 不能像智能指针那样自动清理内存。需要像 C 语言那样手动管理内存。
  • 没有生命周期的概念,也就是说,编译器不会对其提供借用检查。
  • 不能保证线程安全。

可见,原生指针并不受Safe Rust提供的那一层“安全外衣”保护,所以也被称为“裸指针”。