【发布时间】:2018-09-15 04:52:45
【问题描述】:
这段代码有什么问题?
#include<stdio.h>
int main()
{
unsigned int i;
for(i=100;i>=0;i--)
{
printf("%u ",i);
}
return 0;
}
此代码不起作用,但如果我使用 for(i=100;i>0;i--),它就会起作用!
或者另一种方法是使用整数而不是使用无符号整数。
【问题讨论】:
-
unsigned 总是 >=0,所以它永远循环。
-
当i为0时,执行print语句,然后i递减,然后将i变为最大值,总是大于等于0
-
您可以将
i>=0替换为i<101,但只使用有符号整数会更简洁。
标签: c