数据存储
1个字节的有符号数值的范围为-128~127,而127+1,由于127=1111 1111,1=0000 0001,两者之和为10000000,即-128。
由上面可以想到,127溢出后会来到-128,然后形成循环,所以下面这个程序:将一个有符号数n从一开始,不断加一,加一千次,并送入数组a中,统计数组长度,即输出,为255。
这是因为数组以’\0‘作为结束标志,而'\0'的值为0,1 ~ 127,-128 ~ -1,0,除去0共有255个元素。
1 #include <stdio.h>
2 #include <string.h>
3 int main()
4 {
5 char n=1,a[1000];
6 int i;
7 for(i=0;i<1000;i++)
8 {
9 a[i]=n;
10 n++;
11 }
12 printf (“strlen=%d\n”, strlen(a));
13 return 0;
14 }