1
#include<stdio.h>

int main()
{
  int a=3;

  printf("%d"+1,a);
  return 0;
}

为什么这个程序的输出是“d”?如果这个 int 说明符 (%d) 被 float (%f) 替换,那么它将输出为"f"

请解释一下这段代码...

4

1 回答 1

2

"%d" + 1与 相同&"%d"[1],即指向字符串中第二个字符的指针。printf从那里开始将字符串解释为格式说明符,因此与 just 相同"d"(并且第二个参数被简单地忽略)。

于 2013-10-12T14:24:29.470 回答