Rust 学习笔记:关于 Unsafe Rust 的练习题

Rust 学习笔记:关于 Unsafe Rust 的练习题

Rust 学习笔记:关于 Unsafe Rust 的练习题

参考视频:

  1. https://www.bilibili.com/video/BV14b5Xz5EAz

问题一

以下哪些是 Rust 在 unsafe 块中启用的超能力?

A. 禁用借用检查器
B. 调用被标记为 unsafe 的函数
C. 将引用转化为原始指针
D. 解引用原始指针

答:B、D。

问题二

以下代码能否通过编译?若能,输出是?

fn main() {
    let mut v = Vec::with_capacity(4);
    for i in 0..3 {
        v.push(i);
    }
    let n = &v[0] as *const i32;
    v.push(4);
    println!("{}", unsafe { *n });
}

答:可以通过编译。输出是 0。

问题三

以下哪些是使用 unsafe 代码(或围绕 unsafe 代码的安全包装器)来绕过借用检查器的惯用方法?

A. 获取对数组中不相交索引的两个可变引用
B. 允许值在未被读取时未初始化
C. 返回指向栈上分配的变量的指针
D. 让结构体的一个字段的引用位于同一结构体的另一个字段

答:A、B、D。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值