①:输出什么?
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[1000];
int i;
for (i = 0; i < 1000; i++)
{
a[i] = -1 - i;
}
printf("%d", strlen(a));
system("pause");
return 0;
}
输出结果:255
分析:求长度,即寻找=‘\0’,而‘\0’的ASCII码值为0,也就是说这个题是让我们找0,这个数组a是有符号的char,而char类型表示的范围是-128~127,当数组初始化从-1,-2,...,-128,下一个不是0,而是127,126,...3,2,1,0,所以这个数组的长度为255
②:输出什么?
#include<stdio.h>
#include<stdlib.h>
int main()
{
short num = 32767;
short int a = num + 1;
printf("%d\n", a);
system("pause");
return 0;
}
输出结果:-32768
分析:short 的取值范围为:-32768~32767,如果再加1,就是-32768