当前位置: 代码网 > it编程>编程语言>C/C++ > c++中int、 long int、long long int的取值范围

c++中int、 long int、long long int的取值范围

2026年08月26日 C/C++ 我要评论
问题描述在刷leetcode或者牛客网的过程中, 题目的描述中经常会限制数据的取值范围, 所以在编写代码的过程中非常有必要注意, 否则选择不合适的变量类型将无法通过部分测试案例.cpp中一些变量的取值

问题描述

在刷leetcode或者牛客网的过程中, 题目的描述中经常会限制数据的取值范围, 所以在编写代码的过程中非常有必要注意, 否则选择不合适的变量类型将无法通过部分测试案例.

cpp中一些变量的取值范围

#include <iostream>
#include <climits>
using namespace std;

int main() {
    cout << "=== c++ 整数类型取值范围 ===" << endl;

    cout << "int:                " << int_min << " ~ " << int_max << endl;
    cout << "unsigned int:       0 ~ " << uint_max << endl;
    cout << "long int:           " << long_min << " ~ " << long_max << endl;
    cout << "unsigned long int:  0 ~ " << ulong_max << endl;
    cout << "long long int:      " << llong_min << " ~ " << llong_max << endl;
    cout << "unsigned long long: 0 ~ " << ullong_max << endl;

    cout << "\n=== 各类型占用字节数 ===" << endl;
    // table键对齐.
    cout << "int:                " << sizeof(int) << " bytes" << endl;
    cout << "unsigned int:       " << sizeof(unsigned int) << " bytes" << endl;
    cout << "long int:           " << sizeof(long int) << " bytes" << endl;
    cout << "unsigned long int:  " << sizeof(unsigned long int) << " bytes" << endl;
    cout << "long long int:      " << sizeof(long long int) << " bytes" << endl;
    cout << "unsigned long long: " << sizeof(unsigned long long) << " bytes" << endl;

    return 0;
}

程序运行结果

=== c++ 整数类型取值范围 ===
int:                -2147483648 ~ 2147483647
unsigned int:       0 ~ 4294967295
long int:           -9223372036854775808 ~ 9223372036854775807
unsigned long int:  0 ~ 18446744073709551615
long long int:      -9223372036854775808 ~ 9223372036854775807
unsigned long long: 0 ~ 18446744073709551615

=== 各类型占用字节数 ===
int:                4 bytes
unsigned int:       4 bytes
long int:           8 bytes
unsigned long int:  8 bytes
long long int:      8 bytes
unsigned long long: 8 bytes

常见输出结果(64位系统下)

类型字节数取值范围
int4-2,147,483,648 ~ 2,147,483,647 (2.1*10^9)
unsigned int40 ~ 4,294,967,295
long int4 或 8取决于平台(windows 4字节, linux 8字节)
unsigned long int4 或 8取决于平台
long long int8-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
unsigned long long80 ~ 18,446,744,073,709,551,615

关键知识点

  • int 和 long int 在 windows 下都是 4 字节,但在 linux 64位下 long int 是 8 字节,这是跨平台开发时容易踩坑的地方。
  • long long int 是 c++11 标准明确保证至少 8 字节的类型,如果需要跨平台使用 64 位整数,推荐直接使用 long long。
  • <climits> 中的宏常量(如 int_max、llong_min)是最可靠的获取方式,避免手动计算溢出边界。

结论

一般情况下, 使用int类型已经足够了.

到此这篇关于c++中int、 long int、long long int的取值范围的文章就介绍到这了,更多相关c++ int、 long int、long long int取值内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com