[][src]Function tao_of_rust::ch02::primitives::raw_pointer

pub fn raw_pointer()

基本数据类型:原始指针类型

Basic usage:

// 利用元组返回多个值
fn raw_pointer() {
    let mut x = 10;
    let ptr_x = &mut x as *mut i32; // 通过as转换为*mut T原始指针
    let y = Box::new(20);  // 使用Box语法代表在堆内存中存放数字20
    let ptr_y = &*y as *const i32; // 通过as转换为*const T原始指针
    unsafe {
    // 使用它们必须置于unsafe块中
    // *ptr_x 是可变的,*ptr_y是只读的
    // 所以这里不会有安全问题
    *ptr_x += *ptr_y;
    }
    assert_eq!(x, 30);
}
raw_pointer();Run