【发布时间】:2013-10-20 12:59:49
【问题描述】:
#include<stdio.h>
int main()
{
int a=3;
printf("%d"+1,a);
return 0;
}
为什么这个程序的输出是"d"? 如果这个 int 说明符 (%d) 被 float (%f) 替换,那么它将输出为 "f"。
请解释一下这段代码...
【问题讨论】:
#include<stdio.h>
int main()
{
int a=3;
printf("%d"+1,a);
return 0;
}
为什么这个程序的输出是"d"? 如果这个 int 说明符 (%d) 被 float (%f) 替换,那么它将输出为 "f"。
请解释一下这段代码...
【问题讨论】:
"%d" + 1 与&"%d"[1] 相同,即指向字符串中第二个字符的指针。 printf 从那里开始将字符串解释为格式说明符,因此与 "d" 相同(并且第二个参数被简单地忽略)。
【讨论】: