114 字
1 分钟
数组索引可能的溢出及解决方式
2025-03-10

c++中int可能存在溢出问题,例如: 类型上溢出

m=[(i+j)/2]intm = [(i+j)/2]int

当i,j均为int类型时,可能出现int类型上溢出,可考虑使用一下手段在不改变数据类型的前提下,避免溢出:

m=[i+(ji)/2]m = [i+(j-i)/2]
#include<iostream>
using namespace std;

int main(void){
    int a = 1 << 31, b = 1 << 31;
    a -= 10;
    b -= 1;
    cout << a << " " << b << endl;
    cout << (a+b)/2 << endl;
    cout << a + (b-a)/2 << endl;
    return 0;
}
数组索引可能的溢出及解决方式
http://zaoweiceng.github.io/posts/cpp/数据溢出及处理方式/
作者
静惜
发布于
2025-03-10
许可协议
CC BY-NC-SA 4.0