unsigned 可能一部分人对于非负数习惯使用unsigned类型:一来是使的代码清晰易懂(有点类似于const,但问题多多,下面会讲到),二来是可以表达更大的数(这种情况应当比较少吧)。
本人不使用的原因:
1 如果从一致性来讲,对于自己确认(只是自己确认)为非负数加unsigned,那对于for( int i=0; i<100;i++)中的i也应当加,但事实上很少有人会在这添加吧。
2 unsigned类型的变量,在进行比较操作时经常出现比较怪异的问题(对于老手可能用词不当),如:
unsigned int i=10; if(i-100>0) { cout<<"false"<<endl; } else { cout<<"true"<<endl; } |
结果:false
有时候此类问题很隐蔽,上段时间就碰到过,也是那次之后萌发了少用此类型的念头。
3 unsigned确实比int可表示的范围更大,但又能大多少呢?要大不如申明为long型。
4 直接用int少打几个字母