【问题标题】:Calculating powers of 2, prints out 0 every time计算 2 的幂,每次输出 0
【发布时间】: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


【解决方案1】:

它溢出到零,并停留在那里。

【讨论】:

    猜你喜欢
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2013-03-09
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多