0
if (currIndex < 0) {

            cout << currIndex << " % " << array.size() << endl;

            currIndex = currIndex % array.size();

            cout << currIndex << endl;
}

输出:

-1 % 3
0

-1 % 3 = -1 在 C++ 中,为什么返回 0?

完整片段: https ://ideone.com/leWqhi

4

1 回答 1

6

size() 返回无符号整数类型,因此此计算是通过将 -1 转换为无符号并执行无符号模来完成的。

将 size() 转换为有符号整数类型以获得正确的结果。

于 2020-07-03T23:44:28.133 回答