Questions tagged «dereference»


3
为什么C中的箭头(->)运算符存在?
点(.)运算符用于访问结构的成员,而->C语言中的箭头运算符()用于访问所讨论的指针引用的结构的成员。 指针本身没有任何可通过点运算符访问的成员(实际上,它只是一个数字,描述了虚拟内存中的位置,因此它没有任何成员)。因此,如果我们将点运算符定义为在指针上使用时自动取消引用该指针(编译器在编译时知道的信息afaik),则将不会有歧义。 那么,为什么语言创建者决定通过添加此看似不必要的运算符来使事情变得更复杂?重大的设计决定是什么?
264 c  pointers  dereference 

2
Rust的确切自动引用规则是什么?
我正在使用Rust进行学习/实验,并且在使用该语言所获得的所有优雅中,都有一种使我感到困惑的特质,并且似乎完全不合时宜。 进行方法调用时,Rust自动取消引用指针。我进行了一些测试以确定确切的行为: struct X { val: i32 } impl std::ops::Deref for X { type Target = i32; fn deref(&self) -> &i32 { &self.val } } trait M { fn m(self); } impl M for i32 { fn m(self) { println!("i32::m()"); } } impl M for X { fn m(self) { …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.