我的源代码:
#include <stdio.h>
int main()
{
char myArray[150];
int n = sizeof(myArray);
for(int i = 0; i < n; i++)
{
myArray[i] = i + 1;
printf("%d\n", myArray[i]);
}
return 0;
}
我使用 Ubuntu 14 和 gcc 来编译它,它打印出的内容是:
1
2
3
...
125
126
127
-128
-127
-126
-125
...
为什么不直接数到150?
int
的值char
范围可以从 0 到 255 或 -127 到 127,具体取决于实现。
因此,在您的情况下,一旦该值达到 127,它就会溢出,并且您会得到负值作为输出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)