请问为什么把第六行-‘0’去掉 返回值就会从1234变成54562呢 求解答
#include
int f(char *cs)
{
int nk=0;
while (*cs)
nk=nk*10+*cs++-'0';
return (nk);
}
int main()
{
printf("%d",f("1234"));
return 0;
}
如果没有 减 ‘0’ 的话,字符 和 整数 进行加减,直接用其字符对应的 ascii进行计算
举个例子,比如
1 + '1' - '0' = 1 + 1 = 2
1 + '1' = 1 + 49 = 50
因为参数是字符串,里面是数字字符,不是数字,而数字字符转换为数字的方式就是数字字符减去字符'0'
比如数字字符'2',减去数字字符'0',就是数字2了啊
任何工程项目都是模块的有机结合,C语言程序也不例外。工程可以包含多个文件,多个文件中只有一个文件中含有main函数(主函数),其余文件通过#include进行包含。这种设计给予开发人员极大的便利性,以主函数为树干,各功能函数是对树干进行的枝、丫、叶式的扩充。