我必须分析这些代码片段的输出:
int x, y;
x = 200; y = 100;
x = x+y; y = x-y; x = x-y;
printf ("%d %d\n", x, y);
char x, y;
x = 200; y = 100;
x = x+y; y = x-y; x = x-y;
printf ("%d %d\n", x, y);
所以,我现在知道了int
代表整数和char
对于性格;我已经读过这些差异,如果我输入printf
the %d
,它以数字形式返回,并且%c
,以字符的形式。
ASCII 字符代码为'A'
例如是 65,但是为什么第二个函数打印100 -56
, 代替100 200
?
在问题中使用的平台上,类型char
似乎是 1 字节(8 位)大小,并且是具有 1 个符号位和 7 个值位的有符号类型(并使用 2 的补码算术)。它存储从 -128 到 127 的值。所以,这就是发生的情况x
and y
:
x = 200 => x takes value -56
y = 100 => y takes value 100
x = x+y => x takes value 44
y = x-y => y takes value -56
x = x-y => x takes value 100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)