Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c/c+中的静态变量和指向静态变量的指针+;_C_Pointers_Static_Storage Class Specifier - Fatal编程技术网

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?