#include
int main()
{
char s[]={"012xy"};
int i,n=0;
for(i=0;s[i]!=0;i++)//s[0]='0'他的ASCii码是48所以这里就是s[i]=48不等于0;
if(s[i]>='a'&&s[i]<='z')//如果s[i]的在字母‘a’与‘z’之间则条件满足;
n++;//s[i]='0';不在a与z之间所以不执行;只有s[i]是‘x’和'y'时才执行。最后会因为XY执行2次
printf("%d\n",n);//最终n=2;
}
数组中的"012xy"中的0是字符0 ,即‘0’,而下面循环条件中的 0是数字零,完全是不一样的,就如 if ( 0 == '0' ) 他们肯定是不成立的啊
数组裏面是一个字符串,每个元素都是字符,而不是常数。对应的是比较ASCII码才对。
注意了,s[0]是'0'而不是0……
s[0]='0'
也就是48
这是ASCLL码