首页 > 解决方案 > 我可以通过其他文件中的指针来操作文件范围变量/数组吗?

问题描述

交流电

static int var;

int* getVar(void)
{
    return &var;
}

int* getVar(void);

公元前

#include "A.h"
int main(void)
{
    int* ptr = getVar(void);
    *ptr = 3;

    return 0;
}

如题。我可以通过其他文件中的指针来操作文件范围变量 var 吗?

谢谢。

标签: cpointers

解决方案


这是完全有效的。这是否是一个好主意是一个单独的问题(在某些特定情况下可能是)。

只要取消引用时指针指向的对象仍然存在,访问就有效。由于这是一个全局变量,指向的对象(即static int var变量)将一直存在,因此访问是完全有效的。


推荐阅读