【发布时间】:2018-10-05 13:13:59
【问题描述】:
int main () {
string s = "";
cout << s.size() << endl;
cout << s.size() - 5 << endl;
return 0;
}
以上代码输出如下:
0
18446744073709551611
为什么第二个结果不是-5?
【问题讨论】:
-
如文档中所述:std::string::size 返回
std::size_t,即“无符号整数类型”。无符号整数没有负值。 -
Related: stackoverflow.com/questions/5563000/… "否则,如果一个操作数是无符号的,另一个将被转换为无符号。"
标签: c++