我有一个程序,它有一个名为best_cost的变量,它在所有函数之外定义。然后我有一个名为compare_costs的函数,它可以改变best_cost的值,并且我在main()中打印了best_cost。 因为它现在输出1000000,这告诉我compare_costs函数的范围不能改变best_costs的值。我使用了一个调试器,发现在compare_costs中更改了best_cost。这是我的代码的简化版本:
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
答案 0 :(得分:2)
问题是best_cost也在main()中定义。
答案 1 :(得分:0)
只需从main()中删除int best_cost;
答案 2 :(得分:0)
请编辑问题以正确表示问题的状态。目前发布的问题与http://pastebin.com/khs2jcaF
中发布的代码不同步