C语言格式输出printf函数的一个输出问题



代码

#include <stdio.h>
int main(void)
{
int a=2;
float b=9.99f;
printf("1:%dn",a,b);
printf("2:%d、%f、%fn",a);
return 0;
}

编译选项

GCC编译选项为GCC -m32 test.c -o test

输出

$/试验

1:22:2、9.990000

怀疑

在第二个printf语句中,只有一个表达式a,但它打印两个变量的值

堆栈数据

在此处输入图像描述

您使用了不正确的格式说明符,这会导致编译器警告。在第二个printf语句格式"%f"中,需要一个匹配的"double"参数。以下是正确的版本:

#include <stdio.h>
int main(void)
{
int a=2;
float b=9.99f;
printf("1:%d %fn",a,b);
printf("2:%dn",a);
return 0;
}