c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 20:28:19
c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂

c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂
c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂

c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂
这不就是一位一位的往上加么,当c为个位数的char类型时,c*10还是0,那么输入的第一个字母-48得到的就是第一个字母对应的数字,而当处理第二个字母时,原来的c*10,变成了10位数了,后面的*(ipinput++)就是个位数.-48懂的吧?48刚好时0的ascii码,所以差值是相对于0的偏移,不就刚好是对应的数字了么?
所以,这一段代码做了两件事,一件事是后面部分*(ipinput++)-48把字母转成数字,另一件事就是前面的进位