为什么C ++模数对于i%str.size()在i为-1时返回0

问题描述 投票:1回答:1

我很困惑为什么以下代码会产生此输出:

#include <iostream>

using namespace std;

int main()
{
    int i = -1;
    int k = 1;
    string s = "abc";
    int j = s.size();
    int x = 1 % 3;
    int y = i % j; 
    int z = i % s.size(); 
    cout << s.size() << endl; // 3
    cout << x << endl;        // 1
    cout << y << endl;        // -1
    cout << z << endl;        // 0
}

为什么z = 0?与铸造有关吗?

c++ modulus mod
1个回答
0
投票

这里真正发生了什么:

© www.soinside.com 2019 - 2024. All rights reserved.