我需要分析这些代码片段的输出结果:
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
中使用%d
,它会以数字形式返回,而%c
则以字符形式返回。
例如,'A'
的ASCII字符代码是65,但为什么第二个函数打印出100 -56
,而不是100 200
?
char
默认情况下不是无符号的。因此,它会发生溢出。 - Richard J. Ross IIIchar
本身的类型因实现而异。如果您希望在每个实现中都使用特定类型,则必须使用特定类型。其他类型(例如int
)默认为有符号。 - chrischar
在历史上一直有一个不稳定的定义,C语言仍然必须(在某种程度上)适应现在已经基本消失的具有不同大小“字节”的硬件。因此,你所说的关于char
的任何内容都带有大量的警告。 - Hot Licks