#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[0]=0,所以按理说循环体应该不会被执行,但为什么最后输出的n是2呢?
å¦forå¾ªç¯ å¦ä¸:
for(int i=0;i<10;i++)
{
循ç¯ä½
}
æ§è¡æ°åºæ¯:
i=0 åå§ååå¼
i<10 è¿è¡å¤æ,å¦ææ¡ä»¶ä¸ºç,å继ç»æ§è¡
æ§è¡å¾ªç¯ä½ä»£ç
i++ åéièªå¢
åå°ç¬¬2æ¥,ä¸ç´å¾ªç¯ä¸å»,ç´å°ç¬¬2æ¥ä¸ºå, éåºå¾ªç¯.
谢谢,不过循环体中加printf("i=%d\n",i);之后,输出的i是从0开始的。
s[0]=0是错误的
s[0]应该等于48
因为
字符‘0’的asii值是48
可以执行以下代码进行测试