c++编程题

for(i=1;i<strlen(t);i++){result*=8;result+=*(t+i)-'0';}怎么运算... for(i = 1; i < strlen(t); i ++)
{
result *= 8;
result += *(t+i)-'0';
}怎么运算
展开
 我来答
cdyzxy
2015-11-11 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3771万
展开全部
对存放在t数组中的字符串进行处理
从循环来看,要从第2个字符开始处理到最后一个(i的初始值为1,从数组下标1开始处理)
将reuilt累乘8(程序中看不到reulat的初始值),然后再向result变量上累加当前字符减去字符'0'的结果(如果当前字符是数字字符'9',则减去'0'的结果就是9,即取出数字字符的实际代表数值)
这个程序似乎是将t字符串按照8进制取值

假设t="o123",result=0,八进制123等于十进制83
【i=1;】i=1
i<strlen(t)即i<4成立开始循环
【result*=8;】result=0,【result+=*(t+i)-'0'】result+='1'-'0'相当于result+=1,result=1
【i++;】i=2,由于i<4成立继续循环
【result*=8;】result=8,【result+=*(t+i)-'0'】result+='2'-'0'相当于result+=2,result=10
【i++;】i=3,由于i<4成立继续循环
【result*=8;】result=80,【result+=*(t+i)-'0'】result+=3,result=83
【i++;】i=4,由于i<4不成立结束循环
循环结束后result等于83,相当于将字符串t中的八进制数据字符串转换成了实际数值来用
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式