使用静态变量然后指向它的 c 编程?可能的?

c programming using a static variable and then pointing to it ? possible?

在 c 中,当在函数内创建和返回静态变量中的地址时,它是否与 初始化一个简单的

int sNum2 = 0 ; int * temp = &sNum2;

? static 基本上会在内存中分配自己的大小,对吗?

我可以从现在开始从 staticNum 函数指向它吗?

也许这不是一个好的做法,但可以使用吗?

 int * staticNum(){
  int static sNum=0;
  int * temp=&sNum;
  sNum++;
  return temp;
}

是的,可以用。指向静态变量的指针与任何其他指针一样。只是指向数据段中存放静态变量的地方。

这是有效代码。

一个 static 变量,无论是在文件范围内还是在函数内部声明,都有完整的程序生命周期。这意味着它的地址将始终有效,并且可以在程序中的任何时候安全地解除引用。

函数返回的指针

  int * staticNum(){
  int static sNum=0;
  int * temp=&sNum;
  sNum++;
  return temp;
}

将有效,因为静态变量sNum将在退出函数后仍然存在。