1.问输出的情况
#include<stdio.h>
#include<windows.h>
int main(void) {
unsigned int b = 5;
for (b = 9; b >= 0; b--) {
printf("%u\n", b);
Sleep(500);
}
return 0;
}
这里注意到b是无符号的,其值一直在0-->2^32-1之间循环着,该程序在运行后会进入一个无限循环。
2.问输出的情况
#include<stdio.h>
#include<string.h>
int main(void) {
char a[1000];
int i = 0;
for (i = 0; i < 1000; i++) {
a[i] = -1 - i;
}
printf("%d\n", strlen(a));
return 0;
}
这里是一个范围问题,char类型有符号的范围是-128-->127,strlen函数是在找字符串中的'\0',找到一个i,当其放入char中为-1时,结果为0,,其值为255.