代码的执行和字符数组

帮我看一下这个代码,这个代码是如何执行的?为什么结果是6,字符里的'1'不计算吗,求解答

#include 

int main()

{

char b[7]={"67da12"};

     int i=0,s=0;

     for(i =0 ; b[i] >='0'&&b[i]<='9';i+=2)

         s=10*s+b[i] -'0';

      printf("%d\n",s);

     return 0;

}

b[i] >='0'&&b[i]<='9' 表示遇到非数字字符就循环结束。由于i+=2,所以在处理完第一个‘6’之后,就指向了字符'd',不满足循环条件就完事了。所以最终只有一个6

因为你算完6之后,条件不成立就退出for循环了

首先对字符6进行处理,然后i加2,就是字符d。不满足条件,循环结束。