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编译器为什么会警告未初始化的变量,我找不到直接的答案。如何初始化我的变量而没有错误?
否则,当您执行
(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;
}
最佳答案
您声明了变量a
和b
,但在使用它们时未对其进行初始化。
非静态局部变量需要初始化。这意味着您需要在声明它们之后为这些变量分配一个值。
您应该具有以下内容:
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
也会发生相同的情况。