我正在制作一个图像处理程序,并且我已初始化此变量:
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;
只初始化a
和c
,但是b
code> 仍未初始化。
(顺便说一句,读取未初始化的变量具有未定义的行为。)
关于在c中无法将int初始化为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169403/