无符号类型和有符号类型

问题:输出0~10

for(int i=10;i>=0;i--)
std::cout<<i<<std::endl;

结果输出:10 9 8 7 ...0

for(unsigned u=10;u>=0;u--)
std::cout<<u<<std::endl;

发生错误,变量U永远不会小于0,循环条件一直成立。

切勿混用带符号类型和无符号类型:如果表达式中既有带符号类型又有无符号类型,当带符号类型取负值时会出现异常结果,这是因为带符号数会自动地转换成无符号数。

原文地址:https://www.cnblogs.com/cynthia-dcg/p/6048059.html