c - 如何在不调用声明它的函数的情况下修改局部静态变量?

标签 c variables static local

这是一道面试题,但我不知道该怎么做。

假设我们在函数中声明了一个局部静态变量。面试官问我没有调用函数,是否可以修改?我不知道怎么。但我想也许我们可以通过某种方式获取局部静态变量的地址?

最佳答案

允许返回指向具有静态存储的对象的指针,例如

#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/

相关文章:

c - 如何在 C 中使用 Asterisk 操作

c - 为什么 C 中运算符之间的关联性不同?

php - 在 PHP 的 preg_replace 中使用 $ 变量

c++ - 计算有多少个决策变量相等

java - 如何修改/覆盖从 Groovy 基本脚本继承的变量?

python - 在 Tornado 中调用 static_url

c++ - 寻求有关如何将 tesseract 集成到 VC2010 C 程序中的说明

c++ - _asm 在 C 代码中不起作用,如何启用它

javascript - Javascript 中的私有(private)成员。它们可以是非静态的吗?

c - C 函数中静态变量有什么用?