C语言,当i=0时,s [ 0 ] 不是为0么,此时for中的s [ i ] !=0不成立,不就不

2025-03-24 03:09:47
推荐回答(5个)
回答(1):

#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;
}

回答(2):

数组中的"012xy"中的0是字符0 ,即‘0’,而下面循环条件中的 0是数字零,完全是不一样的,就如 if ( 0 == '0' ) 他们肯定是不成立的啊

回答(3):

数组裏面是一个字符串,每个元素都是字符,而不是常数。对应的是比较ASCII码才对。

回答(4):

注意了,s[0]是'0'而不是0……

回答(5):

s[0]='0'
也就是48
这是ASCLL码