c/c++--strlen()小问题

int x = 2;
char * str = "abcd";
int y = (x - strlen(str)) / 3;
printf("%d
", 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 ", y);

剑之所指,心之所向,身之所往!!!
原文地址:https://www.cnblogs.com/31415926535x/p/31415926535x.html