计算2的幂,每次打印出0

mkm*_*hur 0 c

这是我的代码:

int foo() {
  int a = 1;
  while(1) {
    a *=  2;
    printf("a = %d\n", a);
  }
  return a;
}


int main(void) {
  foo();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

它只是打印出"a = 0".我糊涂了!我错过了一些非常简单的事吗?

mkm*_*hur 6

它溢出到零,并保持在那里.