我知道必须重复,但是我什么都没找到。在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;
}
答案 0 :(得分:0)
这几天主要是风格问题。在许多情况下,在变量首次使用时将值赋给变量的可能性较小,并且尽可能接近变量的首次使用点。
另一方面,我当然看到过这样一种情况,即当算法中不包含引入新变量的语句时,算法更易于遵循。在算法主体之前收集所有这些语句,可能会使算法本身适合单个页面/屏幕。
在这样的结构中为变量分配初始值似乎毫无意义:
int foo;
if (bar == 42)
foo = 1;
else
foo = -1;