首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教,把一个循环变量定义为unsigned有什么有关问题

2012-03-09 
请问,把一个循环变量定义为unsigned有什么问题下面的代码有什么问题?unsigned i for (i9i0i--){prin

请问,把一个循环变量定义为unsigned有什么问题
下面的代码有什么问题?
unsigned i ;
for (i=9;i>=0;i--)
{
printf("%u\n",i);
}

请问,把一个循环变量定义为unsigned有什么问题

[解决办法]
unsigned 变量永远大于等于0
[解决办法]
我的编译器是VS2010,调试运行发现编译器讲unsigned默认为unsigned int,然后当i减为0时,再进行i--,i变为2^32 - 1 = 4294729695(在我的机器上int为4个字节)。因此,陷入死循环。你可以自己调试一下,很简单
[解决办法]
你可以写

C/C++ code
unsigned i;for (i = 9; i-- != 0;){    printf("%u\n",i);}
[解决办法]
个人以为,写变量,必须把变量类型带上,不光是为了程序,也是为了你自己
[解决办法]
等于0时再减变成一个大数了。。
[解决办法]
探讨

unsigned 变量永远大于等于0

[解决办法]
探讨

unsigned 变量永远大于等于0

[解决办法]
死循环

热点排行