C语言中的static关键词
来源:互联网 发布:2016人工智能大会 编辑:程序博客网 时间:2024/06/05 15:23
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 <stdio.h>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
- C语言中的static关键词
- C语言中的static
- c 语言中的static
- C语言中的Static
- C语言中的static
- C语言中的static
- c语言中的static
- c语言中的static
- C语言中的static
- C 语言中的static
- C语言中的static
- C语言中的static
- C 语言中的static
- C语言中的static
- C语言中的static
- C语言中的static
- c语言中的static
- C语言中的static
- php根据传入日期获取该日期所在周的起始日期和截止日期(不跨月)
- js中的闭包
- Linux下rz/sz安装及使用方法
- 学习Data Science-Deep Learning的一些材料
- 连续第一百零六天
- C语言中的static关键词
- 数学之美---数学本来就很美
- 一个分页排序SQL查询结果集不确定的案例
- 学习Android
- sublime text配置python环境不能使用input和raw_input的问题
- 机器学习参考资料
- java学习——java简介
- HTML 5.1的10大新功能详解
- servlet_10 服务器HTTP响应