在函数外部更改静态变量的值

时间:2019-08-24 22:32:21

标签: c pointers reference static

我的任务是尝试在C中的函数外部更改静态变量的值。

我已经查看了有关此主题的一些帖子,尤其是此帖子的一些评论: How to change local static variable value from outside function 有一条评论说要通过引用/指针参数传递变量或按引用返回变量,但是我感觉好像缺乏对实现此操作的理解。

我对静态变量的理解是,该变量的内存仅分配一次,并且在变量超出范围时不会释放。根据{{​​3}},函数中的静态变量在两次调用之间保留其值,并且仅在声明它的文件中可见。我建立了一个基本示例来说明传统上如何使用静态变量:

div.min-900 {
  border: 3px solid red;
  min-height: 900px;
}

1 个答案:

答案 0 :(得分:1)

使函数返回变量的地址。

int* myFunction() {
    static int counter = 0; 
    counter++; 
    return &counter; 
}

然后,您可以在main中使用以下功能:

int* ptr = myFunction();
*ptr = 0; // reset counter back to zero