黑马程序员技术交流社区

标题: for循环 [打印本页]

作者: 王海江1    时间: 2014-6-25 23:45
标题: for循环
本帖最后由 王海江1 于 2014-6-26 14:22 编辑

#include<string.h>
int main()
{
    char  ch[7]={ "65ab21"};
    int  i,s=0;
    for(i=0;ch>= '0'&&ch<= '9';i+=2)
        s=10*s+ch- '0';
    printf("%d\n",s);
}


结果是  6

为什么啊?不是62吗?

作者: 踏出梦想的轨迹    时间: 2014-6-26 00:44
当i=0时,ch[0]为定义的第一个字符组数值为6,符合for循环条件,执行  s=10*s+ch[i]- '0'=10*0+6-0=6,执行i+=2,此时i=2,ch[2]是数组元素a,值为97,不满足循环条件表达式,结束循环,故只输出6
作者: ★Joean_Zhou    时间: 2014-6-26 02:40
楼上解答正确
作者: 完美世界    时间: 2014-6-26 07:40
1楼正解
作者: 王海江1    时间: 2014-6-26 14:21
踏出梦想的轨迹 发表于 2014-6-26 00:44
当i=0时,ch[0]为定义的第一个字符组数值为6,符合for循环条件,执行  s=10*s+ch- '0'=10*0+6-0=6,执行i+= ...

谢谢。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2