小心地雷:关于C语言有符号和无符号数据类型
跑跑下面的程序,看看是不是和你想的一样呢?
#include <stdio.h>
#include <string.h>
int main()
{
int i = 1;
unsigned int u = 1;
i = (i-4)*(u%3)/3;
printf("i is %d.\n", i);
i = -2;
u = 1;
printf("i+u is %s less than 0.\n", (i+u<0 ? "" : "not"));
char c = 0xFF;
unsigned char uc = 0xFF;
printf("u is %s equal to uc.\n", (c == uc ? "" : "not"));
char s1[] = "a";
char s2[] = "ab";
printf("s1 is shorter than s2? %s.\n", (strlen(s1)-strlen(s2)<0 ? "Yes" : "No"));
}