我的任务是尝试在C中的函数外部更改静态变量的值。
我已经查看了有关此主题的一些帖子,尤其是此帖子的一些评论: How to change local static variable value from outside function 有一条评论说要通过引用/指针参数传递变量或按引用返回变量,但是我感觉好像缺乏对实现此操作的理解。
我对静态变量的理解是,该变量的内存仅分配一次,并且在变量超出范围时不会释放。根据{{3}},函数中的静态变量在两次调用之间保留其值,并且仅在声明它的文件中可见。我建立了一个基本示例来说明传统上如何使用静态变量:>
div.min-900 {
border: 3px solid red;
min-height: 900px;
}
答案 0 :(得分:1)
使函数返回变量的地址。
int* myFunction() {
static int counter = 0;
counter++;
return &counter;
}
然后,您可以在main
中使用以下功能:
int* ptr = myFunction();
*ptr = 0; // reset counter back to zero