C でコードの出力を確認しています。コードは次のとおりです。
main()
{
struct temp
{
int a;
float b;
}t;
t.a = 5;
t.b = 2.0;
printf( "%d %d %f" , t, t.a ,t.b); // printing 5 0 0.0000000 ...why??
printf( "%d %f %d" , t.a, t.b ,t); // printing 5 2.000000 5
}
このプログラムの出力はどうなりますか? "t" は何を表示しますか? これに対する動作が定義されていない場合、動作が未定義になることがC標準で指定されています。