2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Rust中 *const T和*mut T的区别是什么?

Rust中 *const T和*mut T的区别是什么?

时间:2023-11-03 00:05:15

相关推荐

Rust中 *const T和*mut T的区别是什么?

*const T*mut T的区别是什么?为什么Unique的实现中,是使用*const T而不是使用*mut T

答案:

(1)解引用后的区别,*const T指针解引用对应&T,*mut T解引用对应&mut T;

(2)在安全的代码中,可以将*const T转换为*mut T,因为对于解引用之前,都是原始裸指针,原始裸指针之间转换时可以的;

(3)为什么Unique的实现中,使用*const T而不是*mut T,其原因如下:

根据Rust的规则,只有真正拥有变量或者是可变引用的情况下,才能修改变量,对于指针我们可以同样的理解;因此,在满足安全的情况下,要求Unique是协变的;根据我们在死灵书3.8节子类型和变性中的内容,*const T是对T是协变的。

补充知识:

*const T对于T是协变的;*mut T对于T是不变的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。