为什么变量S是整型,但减去了‘0’,却相当于没减一样?

img


img


‘0’ 对应的ASCII码是 48 不应该会减去48 再当作变量s的值吗?

你只看到了它减去'0',没有看到它先加上p[i][j]了吗,p[i][j]里存的是字符,如果不减去'0',那么加上的是对应的ascii码
减去'0'其实就是把'0'到'9'的字符转换为0-9的数字
'0'-'0'=0
'9'-'0'=9

字符'0'对应ASCII码为48,减去'0',也就是减去48,
假如p[i][j]为字符'1'(对应ASCII码为49),那么它减去'0',就是整数1。


简单来说,减去'0'的意义,此处就是将字符数字转换成整形数字。

希望对题主有所帮助!可以的话,帮忙点个采纳!

已经减去了48了啊,外循环第一次内循环第一次s = 10 * 0 + '6' - '0',结果就是数值6啊,不减这个零不就是54了?
外循环第一次内循环第二次s = 10 * 6 + '3' - '0',结果63。
外循环第二次内循环第一次s = 10 * 63 + '8' - '0',结果638,
外循环第二次内循环第二次s = 10 * 638 + '5' - '0',结果6385。

-'0'只会把'0'~'9'变成0~9,长得一样