题目代码一
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000];
int i;
for(i=0;i<1000;i++)
{
a[i]=-1-i;
}
printf("%d",strlen(a));
return 0;
}
分析:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000];//-128~127
int i;
for(i=0;i<1000;i++)//0-999
{
a[i]=-1-i;//-1、-2、-3...-1000
}
printf("%d",strlen(a));
return 0;
}
strlen用来计算字符串长度,算到'\0'截止
-1-128【128个数】、-129(127)1【127个数】:255个数
再向后一个数就是0,所以strlen的输出是255
题目代码二
#include<stdio.h>
unsigned char i=0;
int main()
{
for(i=0;i<255;i++)
{
printf("5\n");
}
return 0;
}
分析:
#include<stdio.h>
unsigned char i=0;//unsigned char范围是0-255
int main()
{
for(i=0;i<=255;i++)//条件恒成立
{
printf("5\n");//死循环
}
return 0;
}
#include<stdio.h>
unsigned char i=0;//unsigned char范围是0-255
int main()
{
for(i=0;i<=255;i++)//条件恒成立
{
printf("5\n");//死循环
}
return 0;
}