コード1:
main()
{
int a=5;
printf("Value : %d %d %d %d\n",a++,a++,++a,a++);
}
ANS:
Value : 8 7 9 5
コード2:
main()
{
volatile int a=5;
printf("Value : %d %d %d %d\n",a++,a++,++a,a++);
}
ANS:
Value : 8 7 7 5
コード3:
main()
{
int a;
scanf("%d",&a);
printf("Value : %d %d %d %d\n",a++,a++,++a,a++);
}
INPUT is 5
ANS:
Value : 8 7 7 5
上記のプログラムはどのように異なる出力を取得していますか?
揮発性変数を実験しました。これは、コンパイラの最適化を防ぐために使用されます。だから私はコード2を理解しました。しかし、コード1と3がどのように機能しているのか知りたいのですが。