您的位置:首页 > 职场人生

面试频率最高的关键字——static

2016-04-22 15:10 246 查看
谈谈你对Static关键字的理解?

Static既能够修饰变量,又能够修饰函数。

Static修饰变量的时候,既能够修饰局部变量,又能修饰全局变量。

局部变量原来是存储在栈空间的,当Static修饰局部变量的时候,我们称之为静态局部变量。它改为存储在内存的全局数据区中的静态数据区,当没有对它进行初始化的时候,系统默认初始化为0,并且static局部变量在所处模块在初次运行时进行初始化工作, 且只操作一次。Static修饰的局部变量之后,可以延长局部变量的使用周期,原来它只在函数或语句块调用结束后释放,现在延迟到程序结束。

特点: static局部变量的”记忆性”与生存期的”全局性”

所谓”记忆性”是指在两次函数调用时, 在第二次调用进入时, 能保持第一次调用退出时的值.

Static修饰全局变量的时候我们称之为静态全局变量。它存储在全局数据区内的静态存储区(静态存储区在整个程序运行期间都存在),为对其初始化的时候,系统会默认初始化为0,静态全局变量只能在本文件中使用,不能在其他文件访问。它作用域准确地讲从定义之处开始到文件结尾。

为什么要定义Static全局变量呢?(定义静态全局变量的好处)

(1)全局变量很危险,容易被修改,而静态全局变量不会被其他文件所访问,修改

(2)其他文件中可以使用相同的名字的变量,不会发生冲突。

Static修饰函数的时候我们称之为静态函数。

函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。

你为什么要定义静态函数呢?(定义静态函数的好处:)

(1)其他文件中可以定义相同名字的函数,不会发生冲突

(2)静态函数不能被其他文件所用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: