因为
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)
变量状态:
ch[0]='1'
ch[1]='2'
ch[2]='a'
ch[3]='b'
ch[4]='5'
ch[5]='6'
我们开始执行for 循环
第一步:
i=0 , ch[0]>='0' 且 ch[0]<='9'
条件成立 ,进入循环
打印 ch[0]
第二步 i+=2 相当于 i=i+2
那么 现在i变量的值 就是2了
判断条件 ch[2]>='0'且ch[2]<='9' 因为 ch[2]的值是'a'所以,条件不成立,退出循环.
所以只在屏幕上打印了一个1
因为你是要输出的是ch[i],就表示要输出数组中的第i个字符;
而不是要输出1;如果把ch[i]再赋值给一个变量(比如a),输出变量a的值就会等于49。
我是这样理解的哈。
ch[7]={"12ab56"};这里的1是表示字符串中一个字符,而不是数字1;
所以输出是字符1
兄弟,你这个printf输出的时候是以字符形式输出的,而不是int,所以就是它本身的字符输出,如果是int的话就是49了
你本来不就是输出ch[0]也就是那个1吗?要输出ascii要这样
printf("%d",ch[i]);