在c中无法将int初始化为0

标签 c initialization int

我正在制作一个图像处理程序,并且我已初始化此变量:

int minR, minG, minB = 255; int maxR, maxG, maxB = 0;
  printf("%d", maxG);

当我打印这个时,我得到的 maxG 值不是 0,而是 16384。然而,如果我这样做:

int minR, minG, minB = 255; int maxR, maxB = 0;
  int maxG = 0; printf("%d", maxG);

然后一切就OK了。

有谁知道这是为什么吗?谢谢。

最佳答案

初始化器仅适用于它后面的一个声明符,不适用于列表中的任何其他声明符!

所以int a = 10, b, * c = NULL;只初始化ac,但是b code> 仍未初始化。

(顺便说一句,读取未初始化的变量具有未定义的行为。)

关于在c中无法将int初始化为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169403/

相关文章:

arrays - Julia:不同类型的数组

javascript - Runscope 在每个请求之前初始化时间戳变量

python - python3中很奇怪的事情

c - 如何原子地执行一小段 C 代码

c++ - 比较网络摄像头帧时,cvNorm() 总是返回 0

c - 在 C 中 move 实现

python - 如何发出错误而不是系统错误

c - 为函数声明 typedef

c - 是否可以在 #define 中使用 if 语句?

sql - 在 SQL 中,我怎样才能得到一个数学表达式来给我一个 double 而不是一个截断的 int?