想问在s【i】!=0那里不是第一次是0!=0吗,怎么会循环下去呢?

#include <stdio.h>
main()
{  
      char s[]={“012xy“};
      int i,n=0;
      for(i=0;s[i]!=0;i++)
            if(s[i]>=′a′&&s[i]<=′z′)
                  n++;
      printf(“%d\n“,n);
}

想问在s【i】!=0那里不是第一次是0!=0吗,怎么会循环下去呢?答案是n=2

s[0] = '0',这是个字符,所以这个判断是'0'  != 0;这个是true

字符0和数字0不是同一个东西,一个是'0',一个是0。所以你的应该是s[i] != '0'

s[i]是char类型的,跟数字直接比较是比较ASCII码,'0'的ASCII码是48,自然是不等于0,可以循环