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

时间:2020-09-27 19:11:40

标签: c variables

知道必须重复,但是我什么都没找到。在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;
}

1 个答案:

答案 0 :(得分:0)

这几天主要是风格问题。在许多情况下,在变量首次使用时将值赋给变量的可能性较小,并且尽可能接近变量的首次使用点。

另一方面,我当然看到过这样一种情况,即当算法中不包含引入新变量的语句时,算法更易于遵循。在算法主体之前收集所有这些语句,可能会使算法本身适合单个页面/屏幕。

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

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