我有一个程序,它有一个名为 best_cost 的变量,它是在所有函数之外定义的。然后我有一个名为 compare_costs 的函数,它可以更改 best_cost 的值,并且我在 main() 中打印了 best_cost。现在它输出 1000000,这告诉我 compare_costs 函数的范围不能改变 best_costs 的值。我使用了一个调试器,发现 best_cost 在 compare_costs 中发生了变化。这是我的代码的简化版本:
int best_cost = 1000000;
int main {
compare_costs(new_cost);
printf("%d", best_cost);
}
void compare_costs(nc)
{
if(nc < best_cost) {
best_cost = nc;
}
}
我需要使用指针吗?如果是这样,你能给我一个如何将它作为指针实现的简化版本吗?
另外,我应该注意,这是我实际使用的非常简化的代码。我不只是将 best_cost 传递给 compare_costs 函数并让它返回 best_cost 是有原因的。
这是整个代码: http: //pastebin.com/khs2jcaF