我开始阅读《C 编程语言》,我注意到变量的声明和变量的赋值位于不同的行。例如,从第 16 页开始:
int c;
c = getchar();
不写
int c = getchar();
有什么原因吗(一般来说,为什么赋值和声明不在同一行)?当我运行它而不是前者时,它似乎工作得很好。
实际上,自动变量的初始化只是赋值语句的简写。喜欢哪种形式很大程度上取决于品味。我们通常使用显式赋值,因为声明中的初始化器更难看到并且离使用点更远。
{
之后)。这是因为编译器技术还无法胜任任意定位变量声明的任务。
我很确定最初你不能用函数调用来初始化一个变量,但到写 K&R 的时候,它已经消失了。但旧习惯在需要后很长一段时间内仍然存在,所以事情就是这样。在 C '99 及更高版本中,变量声明可以位于语句可以到达的任何位置,也可以位于
for
循环的初始化步骤中。