static关键词C语言,C语言中的static关键词

static为静态的意思, 在C语言中, 使用static关键词来对变量的作用域进行控制, C语言中的变量分为全局变量与局部变量两种, 因此作用域简单的分为两种:

一种是全局作用域, 另一种是局部作用域, 全局变量, 也就是不加static关键词, 并定义在main函数之外的变量, 作用范围是整个程序范围, 同一个文件, 和在多个文件之间生效.

另一种是局部变量, 如在for循环中定义的变量, 在函数中的变量, 这样的变量在代码快执行时则有效, 代码一旦执行完毕, 则会立即被系统从内存中清理出去.

static就是改变变量的作用域

1.函数内部

普通函数中的变量, 随函数的执行而存在, 而在函数内部加上static修饰的变量, 则随函数的存在而存在, 主要前面是执行, 后面是函数的存在, 当static放到一个函数内部修饰变量时, 变量就能在整个程序的执行过程中保持存在而不是仅仅在整个函数的执行过程中存在, 因此有了一点全局变量的特性.

实际上static int res并不算是函数fac中的代码, 因为, 每次调用fac函数时, 这行代码并不执行, 初始化res是在程序装入内存中时完成的, 其地址不再变化, 如果没有对静态变量显式声明, 系统默认初始化为0, 而这行代码写在fac函数内是表明, 这个变量只是用来给fac函数访问的.

看看下面这个程序, 调用10次fac函数, res将被修改为10

#include

int fac()

{

static int res = 0;

res++;

return res;

}

int main()

{

int n = 4;

int t;

for (int i = 0; i < 10; i++)

t = fac();

printf("%d", t);

return 0;

}

2.函数外部 不加static的全局变量作用在不同文件之间, 和本文件的所有函数中, 对函数外部的变量加static修饰之后, 变量则失去了夸文件访问的特性, 只能在本文件中被访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值