0

我有一个程序,它有一个名为 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

4

3 回答 3

2

问题是 best_cost 也在 main() 中定义。

于 2012-12-04T04:50:23.600 回答
0

请编辑问题以正确表示问题的状态。就目前而言,发布的问题与http://pastebin.com/khs2jcaF中发布的代码不同步

于 2012-12-04T07:03:02.650 回答
0

只需int best_cost;从 main() 中删除 ..

于 2012-12-04T05:23:09.503 回答