帮我看一下这个代码,这个代码是如何执行的?为什么结果是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。不满足条件,循环结束。