1

プログラムを検討する

#include<stdio.h>
int main()
{
  int  x = 33;
  float y = 5;

  printf("%d %d",y,x);
  return 0;
}

出力:

0 1075052544

y の値が 0 になることは UB として理解できますが、yx はそうなるのですか? これがイデオンのサンプルです。

4

3 に答える 3

1

yfloatに対して不適切な書式設定を使用しています。ではprintf、「%d」は整数 (int) を表し、「%f」は浮動小数点データ (float) を表します。

これは正しい印刷方法です(x が intxyy が float の場合):

printf("%f %d", y, x);

に関してはx、その前の変数の出力に無効なフォーマットが使用されているため、おそらく(完全にはわかりませんが)正しく出力されません(y)。

于 2013-06-17T19:07:46.147 に答える
1

%f浮動小数点数の出力に使用

printf("%f %d",y,x);
于 2013-06-17T19:08:55.770 に答える