次のコードが最初にB2を書き込み、次にA1を書き込むのはなぜですか?両方のA1を書くべきではありませんか?C ++の暗黙的なデータ型は、signedintからunsignedint(階層の上位)に変換されます
short a=-5;
unsigned short b=-5u;
if(a==b)
printf("A1");
else
printf("B2");
// prints B2
int a2=-5;
unsigned int b2=-5u;
if(a2==b2)
printf("A1");
else
printf("B2");
return 0;
// prints A1