This question already has answers here:
What happens to a declared, uninitialized variable in C? Does it have a value?
                                
                                    (10个回答)
                                
                        
                                2年前关闭。
            
                    
C中大多数未初始化的错误似乎来自范围,如以下答案所示:Uninitialized Structures in C

但是,在此示例中,我已在同一范围内声明了所有变量。对于gcc编译器为什么会警告未初始化的变量,我找不到直接的答案。如何初始化我的变量而没有错误?

#include <stdio.h>

int main() {
  int a,b,c;
  a =+ 3;
  b -=2;
  c = 0;
  printf("a = %d, b = %d\n",a,b );
  return 0;
}

最佳答案

您声明了变量ab,但在使用它们时未对其进行初始化。

非静态局部变量需要初始化。这意味着您需要在声明它们之后为这些变量分配一个值。

您应该具有以下内容:

int main()
{
  int a = 0;
  int b = 0;
  int c;

  a =+ 3;
  b -=2;
  c = 0;
  printf("a = %d, b = %d\n", a, b);
  return (0);
}


否则,当您执行a =+ 3时,将声明您的a变量,但仍不保留任何值。当您执行b时,b -= 2也会发生相同的情况。

10-04 16:21
查看更多