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

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/13 20:23:16
c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂
xRN@ @Don4X˳5hx+BB,̝Ebꦙ=ڰ._(nӳ8vԜzX3KMSD)'o0s(zO܃LtXjZ=Mp.\Ԇ<⮪H$twezhI!WQD9<=sq:xC\8¡VaPza--ЪLթS<K+B~wz}a+ܔޏG *Di/a[j8RӷvjA;MtSGF6@fjwPRu2ԞQ+Ox5'Y@U;Nvn ٢ׅj`p )K}

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把字母转成数字,另一件事就是前面的进位