static mut E: Option<i32> = None;
fn main (){
let mut a =2;
// 变量 a 与 变量 E 的生命周期有区别吗?
loop{true;}
}
static mut E: Option<i32> = None;
fn main (){
let mut a =2;
// 变量 a 与 变量 E 的生命周期有区别吗?
loop{true;}
}
7 回答5.3k 阅读
1 回答3.3k 阅读
2 回答842 阅读
1 回答885 阅读
static
变量是 就算main
函数结束了,该变量仍然有效,直到上层调用销毁进程,而题中代码的变量a
是main
函数中声明定义的变量,生命周期(lifecycle)从声明定义开始到最后一次使用结束。实际上如果使用 release 编译,我们会发现这里的a
会被优化没了。