linux下c的用printf输出int型最大值为什么不是65535,也不是65535的平方?unsigned long int和int型一样?

在linux下C int型是四个字节,也就是32位,可为什么printf能输出的%d最大为2的31次方-1,%x就是可以输出2的32次方-1?

第1个回答  2008-04-22
一般int是4个字节。

问题是C并没有规定int/unsigned long int型的字长,要看你机器的字节长度还有编译器的。

而且64位的话应该是8个字节。