Sah*_*hil 0 c c++ loops while-loop
{
int i=1;
while(i<=32767)
{
printf("%d",i);
i=i+1;
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎是一个简单的程序打印1到32767 ...但当我达到32767 ...在递增值1 .....它试图转到32768,它超出整数范围,并转到另一侧是-32768 .....由于哪个条件变为真,因为我<= 32767即-32768 .....所以它应该作为无限循环工作.我的Dev C++编译器只打印1到32767 ....它不能作为无限循环.任何人
Eri*_* J. 10
据推测,平台上整数的大小> 16位.
ISO/IEC 9899:201x状态
int类型对象的最小值
INT_MIN -32767 // - (2 15 - 1)
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
事实上,如今大多数平台上的大多数C编译器都会有比16位更大的整数.
在C中,保证整数至少为 16位.假设它是特定大小是危险和不可移植的.经常检查.
| 归档时间: |
|
| 查看次数: |
445 次 |
| 最近记录: |