printf("(size_t)-1 is %d/n",(size_t)-1 );
在我的ubuntu9.04上面,得到的结果是4294967294,对比<limits.h>中的宏UINT_MAX,可以发现这两个数字是相同的.
知道了上面的方法,如果要得到UINT_MAX - 1,可以使用(size_t)-2
实际上面,我这台机器(32位系统)使用补码表示数字的,-1在内存中实际就是0xFFFFFFFF,
ps.补码
正数的补码同原码,负数的补码是(除去符号位)原码各位取反,末位加一
如果还是不太清楚为什么的话,可以google一下补码