为了账号安全,请及时绑定邮箱和手机立即绑定

变量声明时就在内存开辟空间吗?

变量声明时就在内存开辟空间吗?

qq_杀意隆_0 2018-03-17 11:21:28
int x; // 这一句是否已经开辟了空间? x = 1;如果是的话:int x; while(true) {     x = 1; } //上面代码比下面代码性能高? while(true) {     int x = 1; }
查看完整描述

1 回答

?
onemoo

TA贡献883条经验 获得超454个赞

你在三个语言分区中都问了这个问题,那么你想问这代码在三种语言中的行为吗?


在 C 和 Java 中,第一个问题的回答是:是的。

C 语言中,int x; 就算是定义。Java 中这样的本地变量也是有值的。只不过它们的初值都是未定义的。

C# 我不了解。


至于第二个问题:你完全没有必要考虑这种过于细节的所谓“优化”,编译器完全会处理好这些的(它可能会把这两种代码优化成同样效率的结构)。

通常在写代码时最优先考虑的是代码的逻辑性和可读性。具体来说,如果 x 只会用在循环中,更推荐将 x 写在循环体里。这样更具逻辑性,也把 x 的作用域限制在循环体中,避免 x 不必要地传播到循环体外面。

查看完整回答
1 反对 回复 2018-03-17
  • 1 回答
  • 0 关注
  • 2533 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信