今天 写了个这的程序 在测试时出现了我所谓的bug
int max = -1;
str = "I miss you xenia";
if( str.length() > max)
max = str.length();
cout<<max<<endl;
输出结果为 -1。
测试几个编译器后 同为此结果
得出结论
str.length() 默认返回的应该是无符号的整数 当与有符号的整数相比较时 默认编译器全部转化成无符号数来运算。
不懂的请参看 整数转化法则
今天 写了个这的程序 在测试时出现了我所谓的bug
int max = -1;
str = "I miss you xenia";
if( str.length() > max)
max = str.length();
cout<<max<<endl;
输出结果为 -1。
测试几个编译器后 同为此结果
得出结论
str.length() 默认返回的应该是无符号的整数 当与有符号的整数相比较时 默认编译器全部转化成无符号数来运算。
不懂的请参看 整数转化法则