int 与 string::length()
今天在代码中遇到这样的问题
int nStart = -1; while (nStart < strTemp.length()) { ... }
感觉自己写的逻辑没有错误,但是,代码执行结果就是不对,结果单步调试到该处发现,while语句一次也没有执行,为什么呢?
这里的原因是:string::length()的返回值string::size_type类型,而size_type是unsigned int的,所以-1跟它比较是比它大的。
哎,细节决定成败啊,以后千万要注意