C语言中,static关键字举例——局部static变量
C语言中,static关键字可以用在全局范围,也可以用在函数范围,还可以用在局部范围!
先上实验代码:
[cpp]
#include <stdio.h>
void func(int i){
if((i&0x01)==1){
static int j=1;//局部范围定义的static变量j
j++;
printf("i=%d,j=%d.\n",i,j);
}
else{
static int j=0;//再定义一个static变量j
j++;
printf("\ti=%d,j=%d.\n",i,j);
}
//printf("j=",j);//error.变量j未被定义
return;
}
int main(){
for(int i=0;i<10;++i)
func(i);
return 0;
}
代码输出如下:
从执行结果可以看出,if中定义的static变量j与else中定义的static变量j,互相独立,而且都会保留“上一次的赋值结果”,同时,在if和else中定义的static变量,仅在if或else的局部范围可见,局部范围之外,不可见。
补充:软件开发 , C语言 ,