我在测试函数printf时遇到了一个问题:
首先我写这样的代码:
int main(void)
{
char a = 'a';
printf("a = %f\n", a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是

然后我写代码:
int main(void)
{
float b = 'a';
printf("b = %f\n", b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是

然后我写代码:
int main(void)
{
char a = 'a';
float b = 'a';
printf("b = %f\n", b);
printf("a = %f\n", a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是

所以我很困惑为什么在第一个程序a= 0.000000和第三个程序a= 97.000000?
该功能如何printf()运作?
如何符号%f,%d工作?
我编写了如下代码:
int a = -1;
unsigned int b = 0xffffffff;
if (a == b)
printf("a == b\n");
else
printf("a != b\n");
printf("a = %x b = %x\n", a, b);
return 0;
Run Code Online (Sandbox Code Playgroud)
它表明a和b是相等的.所以我想知道计算机如何做出判断?
c ×2