我知道引用是语法糖,因此代码更容易读写.
但有什么区别?
以下答案和链接摘要:
NULL),而引用总是指对象.&obj + 5).澄清一个误解:
C++标准非常谨慎,以避免规定编译器如何实现引用,但每个C++编译器都将引用实现为指针.也就是说,声明如下:
Run Code Online (Sandbox Code Playgroud)int &ri = i;如果它没有完全优化,则分配与指针相同的存储量,并将地址
i放入该存储中.
因此,指针和引用都使用相同数量的内存.
作为基本规则,
有趣的读物:
我想用不同的名称调用相同的变量,如何为其分配别名?
我是否坚持使用宏,比如
#DEFINE Variable Alias
Run Code Online (Sandbox Code Playgroud)
我目前在C中使用函数作为重命名方法.
所以给定变量: int signal
我会做以下事情
int Temperature(){return signal;}
Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习一点Rust,并且对变量的可变性概念非常感兴趣.
我正在尝试编写与此C++程序非常相似的内容.
#include <cstdio>
void do_something(int &var) {
var++;
}
int main() {
int a = 3;
int b = a;
printf("a is %d and b is %d\n", a, b);
do_something(b);
printf("a is %d and b is %d\n", a, b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望看到:
a是3,b是3
a是3,b是4
这个想法是传递引用呈现b可变,但a不可变.
以下是我假设在Rust中编写此程序的方法:
fn main() {
let a: i32 = 3;
let b: &mut i32 = &a;
println!("a is {} and b is {}", a, b);
do_something(b);
println!("a is {} and …Run Code Online (Sandbox Code Playgroud)