【发布时间】:2018-02-18 14:40:21
【问题描述】:
string str = "abcdef";
cout << str.length() << endl; //6
cout << str.length() - 7 << endl; //4294967295
我不明白为什么 str.length() - 7 返回 4294967295 而不是 -1。
你能帮我解释一下吗?
【问题讨论】:
-
See this 深入了解给您的答案。您会看到答案 是
-1,只是您看到 -1 的形式不同(未签名而不是签名)。 -
@PaulMcKenzie - 无符号类型的值不能为
-1。但是,当它被分配一个负值时,该值将使用模算术进行转换。结果可以但不一定具有与具有相同大小且值为-1的有符号整数变量相同的按位表示
标签: c++ string string-length