通过参数引用更新C中的全局变量

时间:2016-09-27 04:00:28

标签: c function pass-by-reference

short int PC = 0;

int main() {
    foo(&PC) ;
}

void foo(short int PC) {
    PC++;
}

如何成功更新PC的全局变量?

注意:必须将PC作为参数传递,并且需要通过参数修改全局变量。

正如您所知,我是C的新手并且正在尝试了解*&之间的区别。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

你只需要将参数作为指针:

short int PC = 0;

void foo(short int *pc) {
    (*pc)++;
}

int main() {
    foo(&PC) ;
}

我将foo()移到main()之上,因为在C中你必须在使用它们之前声明它们。如果您愿意,可以通过在顶部说void foo();并在下面留下定义来转发声明。