#include<stdio.h>
int main(int argc,char **argv){
char ch[8]={"652ab21"};
int i=0,s=0;
while(ch[i]>'0'&&ch[i]<'9'){
s=10*s+ch[i]-'0';
i+=2;
}
printf("%d\n",i);
}
结果是62 , i的为什么i的值停留在4 ,如果i+=2执行以后 i变为6的话 ch[6]也就是最后一个数值也符合循环条件的,为什么但他没进行循环。
i = 0时, ch[0] = 6 条件满足进入循环
s = 6
i = 2时, ch[2] = 2 条件满足进入循环
s = 62
i = 4时, ch[4] = b 条件不满足跳出循环
所以 s = 62,i = 4
ch[4]是多少啊?能通过while判断吗?
因为循环遍历到字母的时候就已经跳出循环了