【发布时间】:2020-03-07 11:33:03
【问题描述】:
void main() {
int a, b, c, d, e = 0;
printf("\n%d", a);
printf("\n%d", b);
printf("\n%d", c);
printf("\n%d", d);
printf("\n%d", e);
}
输出:
16
0
10818512
0
0
出于某种原因,a 始终等于 16,尽管我将其初始化为 0。
另一方面,c 总是在我重新运行代码时更改其值。为什么会这样?
我觉得我在这里错过了一些重要的事情。
【问题讨论】:
-
不相关:首选
printf("%d\n", value);,格式字符串末尾有换行符。 -
为什么投反对票?这是一个正式完整的问题。
-
@alk(不是我的投票)“这个问题没有显示任何研究工作”。任何关于初始化的参考都将涵盖它。猜测语言语义在 C 中并不遥远
-
您最好将
int a, b, c, d, e = 0;之类的代码拆分为每个变量一行。将它们全部放在一条线上,您将一无所获。教科书这样做是因为在书的长度上,这种格式可以节省几页,而成千上万的教科书可以节省几页,这使得出版公司的首席执行官可以为他的游泳池买单。 “代码简洁”只不过是一句货物崇拜的格言。重要的是可读性和可维护性。每行一个变量更易于阅读和维护代码,因为您可以轻松找到并更改它们。
标签: c initialization declaration