【发布时间】:2014-10-31 10:57:31
【问题描述】:
示例如下:
#include <stdio.h>
int main()
{
int x=35;
int y=-35;
unsigned int z=35;
unsigned int p=-35;
signed int q=-35;
printf("Int(35d)=%d\n\
Int(-35d)=%d\n\
UInt(35u)=%u\n\
UInt(-35u)=%u\n\
UInt(-35d)=%d\n\
SInt(-35u)=%u\n",x,y,z,p,p,q);
return 0;
}
输出:
Int(35d)=35
Int(-35d)=-35
UInt(35u)=35
UInt(-35u)=4294967261
UInt(-35d)=-35
SInt(-35u)=4294967261
我将值声明为有符号整数还是无符号整数真的很重要吗?因为,C 实际上只关心我如何从内存中读取值。请帮助我理解这一点,我希望你能证明我错了。
【问题讨论】:
-
存储数字的不是 C,而是特定的计算机。 C99 标准只是记录了它们行为的一组属性。
标签: c int unsigned-integer