如何使用以下代码:
let arr: [u8; 3] = [1, 2, 3];
let x1: &[u8] = &arr[0..];
let x2: &[u8] = &arr[1..];
let d: isize = x2 - x1;
我在一个向量中有两个切片,我想知道它们的起始指针之间的区别(在该示例中应该是1)。
答案 0 :(得分:1)
其中一种方法是将指向切片内容的指针转换为isize
,并对这些值进行算术处理:
let arr: [u8; 3] = [1, 2, 3];
let x1: &[u8] = &arr[0..];
let x2: &[u8] = &arr[1..];
let d: isize = x2.as_ptr() as isize - x1.as_ptr() as isize;
println!("{}", d);
但我不确定如果地址不适合isize
,这将如何运作。