楼主可以把下面的程序在计算机VC6.0环境下运行看看结果就知道哦
程序清单:
#include <iostream>
using namespace std
int main()
{
int t=1
while(-1)
{
printf("nice dream\n")
t--
if(t)
break
}
return 0
}
最后屏幕上输出两行:
nice dream
nice dream
哈哈
下面对楼主解释一下-1
在c中,-1你可以认为是非零,那么只要while里面的判断非零,就会循环执行,所以这里的
while(-1)的供能也是循环执行,类似于while(1)
第一次执行时候,t--之后t=0;那么if不成立,所以不会执行break
第二次执行的时候,t--之后t=-1;那么if成立,所以执行break,这样就会跳出while循环
所以一共执行了两次
嘿嘿~~~希望可以共同进步哦 楼主@_@
65535 在计算机中负数是用补码表示的,即反码加1 正数直接用原码表示 因为-1是负数就用补码表示为 00000000 00000001 的反码 11111111 11111110+1 即 11111111 11111111 转换为十进制数为65535 最高位为符号位不必考虑!