C语言 将八进制字符转成十进制整数
1个回答
推荐于2017-12-15
展开全部
n = *p - '0';// 这一行已经把字符串的第一个字符处理了,所以下面是从下一个字符开始
p++; //所以要自加1
转化的过程是这样子的:
假设 s = '123'
fun(s)的运行过程如下:
n = '1' - '0'; //n = 1
p++; //*p='2'
n = n*8+ *p - '0'; // n = n*8 + '2'-'0' = 1*8+2 = 10
p++;
n = n*8+ *p - '0'; // n = n*8 + '3'-'0' = 10*8+3 = 83, 此时
p++; //此时*p=0;所以循环退出,返回n,结果就是83
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询