这是一道面试题,但我不知道该怎么做。
假设我们在函数中声明了一个局部静态变量。面试官问我没有调用函数,是否可以修改?我不知道怎么。但我想也许我们可以通过某种方式获取局部静态变量的地址?
最佳答案
允许返回指向具有静态存储的对象的指针,例如
#include <stdio.h>
int *foo(void) {
static int x;
printf("%d\n", x);
return &x;
}
int main(void) {
int *p = foo();
*p = 10;
foo();
return 0;
}
将打印:
0
10
或者,您当然可以将指针传递给指针并将其存储在那里而不是返回它。
关于c - 如何在不调用声明它的函数的情况下修改局部静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22061947/