静态变量和指向c/c++中静态变量的指针



如果我有静态变量:

static int a;

我想要一个指针指向这个变量,如果指针看起来像:

static int* f;
f=&a;

如果我把这个f返回给一个函数调用,并用一条赋值语句指向一个类型为static int*的指针,这个变量在那个函数中可以访问吗?

还有:

int a;
static int* f;
f=&a; // does this mean now a is a static variable and it will be retained until the program ends?
static int b;
int* c;
c=&n; // is this possible? 
int a;
static int* f;
f=&a; // does this mean now a is a static variable and it will be retained until the program ends?

"[D] 这是否意味着现在a是一个静态变量;?

没有。static属性仅适用于显式定义为static的变量。在上面的例子中,只有fstatica的生存期将在其周围作用域结束时结束,从而使指向它的任何指针在该点无效。

static int b;
int* c;
c=&n; // is this possible? 

"[I] 这可能吗">

是的,没关系。局部静态变量的寿命是程序的全部寿命。全局变量(静态或非静态(也有完整程序的生命周期。这意味着指向它们的指针将始终有效。

此存储类说明符引用可能有助于通读。

相关内容

  • 没有找到相关文章

最新更新