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