gpt4 book ai didi

c++ - 为什么size_t不能直接和负int比较?

转载 作者:太空狗 更新时间:2023-10-29 20:10:54 25 4
gpt4 key购买 nike

我程序中的一个错误是直接比较size_tint造成的。

一个玩具示例代码如下:

string s = "AB";
cout << (-1 < 8888888+(int)s.size()) << endl;
cout << (-1 < 8888888+s.size()) << endl;

输出是:

1

0

那么为什么size_t不能直接与负值int进行比较呢?

最佳答案

size_t 是无符号的,因此只能表示正数。将其与否定进行比较会产生古怪的结果。

如果您尝试将 int (-1) 转换为 size_t,您会发现它变成了一个巨大的数字,这解释了您的行为。

关于c++ - 为什么size_t不能直接和负int比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35901353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com