使用静态变量然后指向它的 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
将在退出函数后仍然存在。
在 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
将在退出函数后仍然存在。