<分区>
Possible Duplicate:
int divided by unsigned int causing rollover
您好,我正在做以下事情:
struct coord{
int col;
};
int main(int argc, char* argv[]) {
coord c;
c.col = 0;
std::vector<coord> v;
for(int i = 0; i < 5; i++){
v.push_back(coord());
}
c.col += -13;
cout << " c.col is " << c.col << endl;
cout << " v size is " << v.size() << endl;
c.col /= v.size();
cout << c.col << endl;
}
我得到以下输出:
c.col is -13
v size is 5
858993456
但是,如果我将分隔线更改为 c.col/= ((int)v.size());
我会得到预期的输出:
c.col is -13
v size is 5
-2
这是为什么?