c语言复习--静态变量(static)

        静态变量存放在内存中的静态存储区,编译系统为其分配固定的存储空间,重复使用时,会保留变量中的值。 

其定义形式为:              static 类型标识符 变量名

静态变量分为外部静态变量与内部静态变量。外部静态变量是一种全局变量,但作用域仅在定义其的源文件之中,不像外部变量作用于整个程序。

比如:分析下列程序

/*文件一*/
#include<stdio.h>
static int x=2;
int y=3;
extern void add2();
void add1();

void main(){
  add1();  add2();   add1();   add2();
  printf("x=%d;y=%d",x,y);
}
 
void add1(void){
  x+=2;
  y+=3;
  printf("in add1 x=%d\n",x);
}

/*文件二*/
static int x=10;
void add2(void){
  extern int y;
  x+=10;
  y+=2;
  printf("in add2 x=%d\n",x);
}

程序运行结果为

in add1 x=4

in add2 x=20   注意add2中的x是文件二中的外部静态变量

in add1 x=6

in add2 x=30

x=6;y=13  注意文件二中y定义为外部变量

内部静态变量与自动变量相似。不同点在于自动变量退出函数调用即消失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shiroi hana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值