【发布时间】:2017-06-14 17:33:04
【问题描述】:
我正在努力学习 C 并且已经很困惑了。
#include <stdio.h>
int main(void)
{
int a = 50000;
float b = 'a';
printf("b = %f\n", 'a');
printf("a = %f\n", a);
return 0;
}
上述代码每次使用gcc 都会产生不同的输出。为什么?
【问题讨论】:
-
在第一个
printf语句中,您尝试将char打印为float。这可能是部分原因。 -
使用不匹配的格式和参数类型是未定义的行为。
-
认真对待编译器的警告。
-
您应该阅读一下格式说明符。
-
你的意思是做 float b = 'a' 吗?而不仅仅是 = a ?
标签: c printf format-specifiers