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]。つまり、文字列の 2 番目の文字へのポインタです。printfそこから文字列をフォーマット指定子として解釈し始めます。したがって、これは just と同じです"d"(2 番目の引数は単純に無視されます)。

于 2013-10-12T14:24:29.470 に答える