做交通锁具网站,建设银行个人网上银行app,关键词排名优化公司外包,软件制作公司代码创建了一个结构体#xff0c;结构体有test1 字符串#xff0c;还有指向字符串的指针。一共创建了两个。
然后我们使用swap 函数 交换两个结构体内存的内容。
最后如上图。相同的地址#xff0c;变成了另外结构体的内容。注意看指针部分#xff0c;还是指向原来的地址… 代码创建了一个结构体结构体有test1 字符串还有指向字符串的指针。一共创建了两个。
然后我们使用swap 函数 交换两个结构体内存的内容。
最后如上图。相同的地址变成了另外结构体的内容。注意看指针部分还是指向原来的地址。然后我们修改test1 test2输出的时候就变了
struct Test {a: String,b: *const String,
}impl Test {fn new(txt: str) - Self {Test {a: String::from(txt),b: std::ptr::null(),}}fn init(mut self) {let self_ref: *const String self.a;self.b self_ref;}fn b(self) - String {unsafe {*(self.b)}}
}fn main() {let mut test1 Test::new(test1);test1.init();let mut test2 Test::new(test2);test2.init();println!(a:{},b:{}, test1.a, test1.b());std::mem::swap(mut test1, mut test2);test1.a xxxxx.to_string();println!(a:{},b:{}, test2.a, test2.b());
}
运行结果