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 不必要地传播到循环体外面。
添加回答
举报
0/150
提交
取消