#define定义的宏是在编译之前在源代码文本中进行替换的,不需要为其分配空间,在编译之后就不能再以任何方式改变.变量则是在运行的过程中在内存中分配的一段空间,可以在运行的过程中对值进行改变.
如果一个量在运行的过程中不需要再改变,而且对速度比较在意,那么就应该使用宏.
有符号整数与无符号整数做数学运算时会自动转换为无符号类型。
例如 int x=-5;
11111111 11111111 11111111 11111011
unsigned int y=5;
00000000 00000000 00000000 00000101
结果是0
32位的int类型时 -20为4294967276 i+j = 4294967286