【发布时间】:2015-04-30 21:33:42
【问题描述】:
这是我的代码:
int foo() {
int a = 1;
while(1) {
a *= 2;
printf("a = %d\n", a);
}
return a;
}
int main(void) {
foo();
return 0;
}
它只是不断打印出“a = 0”。我糊涂了!我错过了一些非常简单的东西吗?
【问题讨论】:
-
它对我来说很好用 (Link)
-
WTF 是
while (1)你故意不退出循环? -
@iharob 我怀疑这是整个实际程序。这可能是一个简单的示例,旨在仅显示问题所在,就像您应该在 SO 上发布一样。
-
还要打印两个的幂,你应该学习
<<操作符。 -
为什么 OP 不把这个例子变成一个简单的
for (...)这让我很困扰,因为我在非常奇怪的情况下看到它有人故意使用while (1)... 而且,像for (i = 0 ; i < 31 ; i++)这样的简单问题不会发生,对吗?
标签: c