我很困惑为什么以下代码会产生此输出:
#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?与铸造有关吗?
这里真正发生了什么: