-3
char* fun()
{
  return("samsung india");
}
main()
{
  printf("%s",printf("electronics")+fun());
}

出力:「エレクトロニカ」

誰かが私にこの出力を説明してもらえますか?

4

2 に答える 2

0

出力はランタイムごとに異なる可能性があると思います..そこで何が起こるか:

printf("%s",printf("electronics")+fun());

これを想定してください: printf("%s", arg); あなたの引数 = printf("electronics")+fun()

arg は char* であると想定されるため、ポインター...実際には、arg が評価されると、printf("electronics") は出力エレクトロニクスを提供し、値 11 (正常に印刷された文字の数) を返します。fun() は char を返します。 * - samsung india を指すメモリへのポインターですが、そのポインター 11 に追加すると、ポインターは「ia」を指し、これが出力に追加されます...

于 2013-08-29T13:04:52.827 に答える