#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"
相同(第二个参数被简单地忽略)。