c-为什么只在声明之后才给变量赋值



知道一定有重复,但我什么都没找到。在C中,我看到了很多代码示例,其中作者只在变量声明后赋值,这样做有充分的理由吗?

int main(void)
{
int x; // declare "x"
x = 5; // assign 5 to "x"
return 66;
}

这和只在一行中声明和赋值有什么不同?

int main(void)
{
int x = 5; // declare "x" and assign in the same line
return 66;
}

现在主要是风格问题。在许多情况下,在变量第一次使用时,或者尽可能接近其第一次使用点时,将值分配给变量不太容易出错。

另一方面,我确实见过这样的情况,当算法中没有引入新变量的语句时,它更容易遵循。在算法主体之前收集所有这些语句可以允许算法本身适合单个页面/屏幕。

在这样的结构中,为变量分配初始值似乎毫无意义:

int foo;
if (bar == 42)
foo = 1;
else
foo = -1;

最新更新