int x = 2; char * str = "abcd"; int y = (x - strlen(str)) / 3; printf("%d\n", y);
此处strlen ()返回值为无符号形式,并且会将(x - strlen (str) )强制转化为无符号数,即-2的补码除以3,结果是1431655764;若换成(x - (int)strlen (str)) / 3即可得0.
....来自群友
int x = 2;char * str = "abcd";int y = (x - strlen(str)) / 3;printf("%d\n", y);