c/c+中的静态变量和指向静态变量的指针+;
如果我有静态变量:c/c+中的静态变量和指向静态变量的指针+;,c,pointers,static,storage-class-specifier,C,Pointers,Static,Storage Class Specifier,如果我有静态变量: static int a; 我想要一个指向这个变量的指针,如果指针看起来像: static int* f; f=&a; 如果我将这个f返回给一个函数调用,并将赋值语句返回给static int*类型的指针,那么这个变量在该函数中是否可以访问 此外: “[D]这是否意味着a现在是一个静态变量” 不,没有。static属性仅适用于明确定义为static的变量。在上面的示例中,只有f是static。a的生存期将在其周围范围结束时结束,使得指向它的任何指针在该点无效 st
static int a;
我想要一个指向这个变量的指针,如果指针看起来像:
static int* f;
f=&a;
如果我将这个f返回给一个函数调用,并将赋值语句返回给static int*类型的指针,那么这个变量在该函数中是否可以访问
此外:
“[D]这是否意味着a现在是一个静态变量”
不,没有。static
属性仅适用于明确定义为static
的变量。在上面的示例中,只有f
是static
。a
的生存期将在其周围范围结束时结束,使得指向它的任何指针在该点无效
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?
static int b;
int* c;
c=&n; // is this possible?