Các tham chiếu có thể được chuyển đổi thành một kiểu nguyên thủy hơn được gọi là raw pointer(con trỏ thô). Giống như một số, nó có thể được sao chép và di chuyển xung quanh mà không bị hạn chế nhiều. Rust không đảm bảo tính hợp lệ của vị trí bộ nhớ mà nó trỏ tới.
Tồn tại hai loại con trỏ thô:
*const T
- Một con trỏ thô tới dữ liệu kiểu T mà không bao giờ thay đổi.*mut T
- Một con trỏ thô tới dữ liệu kiểu T mà có thể thay đổi.Con trỏ thô có thể được chuyển đổi thành số và từ số (ví dụ: usize
).
Con trỏ thô có thể truy cập dữ liệu bằng code không an toàn (sẽ tìm hiểu thêm về điều này sau).
Chi tiết bộ nhớ:
Một tham chiếu trong Rust rất giống với một con trỏ trong C về cách sử dụng, nhưng với nhiều hạn chế về thời gian biên dịch hơn về cách nó có thể được lưu trữ và di chuyển sang các chức năng khác.
Một con trỏ thô trong Rust tương tự như một con trỏ trong C ở chỗ nó đại diện cho một số có thể được sao chép hoặc chuyển xung quanh, và thậm chí được chuyển thành các kiểu số nơi nó có thể được sửa đổi thành một số để thực hiện phép toán con trỏ.