求助...这个警告是什么意思

P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

@[Xiang](/space/show?uid=54763) 字符串的length函数返回的是一个无符号类型的值,而```i```是有符号类型,将有符号类型与无符号类型作比较会有危险。 C++规定,有符号类型与无符号类型一起运算时,有符号类型会被**提升**成无符号,因此例如下面这样的表达式 ``` i < s.length() ``` 如果不巧```i```是负数,这个表达式几乎总是```false```,因为负数变成无符号类型的话会很大(比如将-1提升成```unsigned```会变成4294967295)
by GKxx @ 2019-02-02 15:15:00


如果你自己很清楚i不会是负数的话你可以不必在意这一点。要了解更多请查阅《C++Primer》关于类型转换的相关内容
by GKxx @ 2019-02-02 15:17:00


@[GKxx](/space/show?uid=72071) 好的!谢谢!
by Xiang @ 2019-02-02 15:20:08


似乎数组开太大也会导致这种情况……不是很清楚原理。我是在https://www.luogu.com.cn/problem/P1100 这道题。
by CDTong @ 2021-08-16 10:50:41


|