【发布时间】:2021-09-15 19:14:13
【问题描述】:
我只是想知道为什么当我尝试打印 char 和整数值的加法时会得到 0 值。我的代码如下:
int y;
y = 10;
char z;
z = '9';
printf("%f", z + y);
【问题讨论】:
-
因为
z + y产生int,而不是float?因此,您的printf调用会调用 undefined behavior -
由您来确保格式字符串和参数匹配。在您的示例中,格式字符串调用
double,但参数是int。因此,您要么需要更改格式字符串,要么向参数添加强制转换。 -
如果您的编译器警告级别设置得足够高,您可能会收到有关格式与参数不匹配的警告。这将是一件值得关注的好事情。