这是我的代码:
#include <iostream>
using namespace std;
int rev(int i) {
int ret;
while (i >= 1) {
ret += i%10;
i /= 10;
ret *= 10;
}
return ret/10;
}
int main() {
//rev(4);
cout << rev(123) << endl;
return 0;
}
当我跑步时,我会得到“321”,就像我应该的那样 但当我取消评论上面的一行时,我得到“4321”! 这是为什么?
答案 0 :(得分:3)
未初始化ret
。您有一个预先存在的垃圾值与计算混合在一起。
给
int ret = 0;
一个去。
答案 1 :(得分:2)
int ret;
的初始值未定义(任何值)。将其替换为int ret = 0;
。