这些数据类型有什么区别?

时间:2012-04-25 03:31:31

标签: c++ types integer int unsigned

在C ++中,short int,unsigned int,signed int和int有什么区别?有什么应用程序?你什么时候使用short int,unsigned int等?

3 个答案:

答案 0 :(得分:4)

看一看!你告诉我!

#include <iostream>
#include <cstdlib>
#include <limits>
using namespace std;

int main(){

    cout << "min_int = " << numeric_limits<int>::min() << endl;
    cout << "max_int = " << numeric_limits<int>::max() << endl;

    cout << "min_unsigned_int = " << numeric_limits<unsigned int>::min() << endl;
    cout << "max_unsigned_int = " << numeric_limits<unsigned int>::max() << endl;

    cout << "min_short = " << numeric_limits<short>::min() << endl;
    cout << "max_short = " << numeric_limits<short>::max() << endl;

    cout << "min_unsigned_short = " << numeric_limits<unsigned short>::min() << endl;
    cout << "max_unsigned_short = " << numeric_limits<unsigned short>::max() << endl;

    return EXIT_SUCCESS;
}

答案 1 :(得分:1)

在大多数情况下,int是你想要的,如果你要严格使用非负数,那么unsigned就是好的。但通常标准库函数会返回错误的负值。

Short主要用于较大数据结构中的小值作为内存优化,或用于与网络或文件格式连接。

答案 2 :(得分:1)

如果你想创建一个只接受正数的函数,这可能是为了限制其他人传递负值或者让你的函数不必检查传递的值的符号,你可以使用unsigned int 。当然,这并不能阻止任何人将负int转换为unsigned int。这只会导致你的函数将它解释为一个巨大的数字(因为最重要的位将是1来表示先前的负数)但是这就是投射该值的人的错误。