英語がわからんが How much? その2
クイズ: 実行前にいくつになるか予想せよ。
/* and haw much? */
#includeint main()
{
unsigned char u = UCHAR_MAX;
signed char c = CHAR_MAX;
unsigned char u2 = c;
signed char c2 = u;
u += 2;
c += 2;
u2 += 2;
c2 += 2;printf("u = %d, c = %d\n", u, c);
printf("u2 = %d, c2 = %d\n", u2, c2);
}
これも、実行前に表示(出力)を予想せよ。
#include/* 警告(Warning)が出るが、エラーではないのでコンパイルはできる。*/
int main()
{
char c = CHAR_MAX;
unsigned char uc = UCHAR_MAX;
int i = INT_MAX;
unsigned int ui = UINT_MAX;c += 2;
uc += 2;
i += 2;
ui += 2;printf("(1 :c - d) %d\n", c);
printf("(2 :c - u) %u\n", c);printf("(3 :uc - d) %d\n", uc);
printf("(4 :uc - u) %u\n", uc);printf("(5 :C - d) %d\n", CHAR_MAX + 2);
printf("(6 :C - u) %u\n", CHAR_MAX + 2);printf("(7 :UC - d) %d\n", UCHAR_MAX + 2);
printf("(8 :UC - u) %u\n", UCHAR_MAX + 2);printf("(9 :i - d) %d\n", i);
printf("(10:i - u) %u\n", i);printf("(11:ui - d) %d\n", ui);
printf("(12:ui - u) %u\n", ui);printf("(13:I - d) %d\n", INT_MAX + 2);
printf("(14:I - u) %u\n", INT_MAX + 2);printf("(15:UI - d) %d\n", UINT_MAX + 2);
printf("(16:UI - u) %u\n", UINT_MAX + 2);
}