static...

来源:百度知道 编辑:UC知道 时间:2024/07/01 06:15:09
16.static变量和static 函数各有什么特点?

答:
static变量:在程序运行期内一直有效,如果定义在函数外,则在编译单元内可见,如果在函数内,在定义的block内可见;
static函数:在编译单元内可见;

以上说法正确吗?这应该涉及到编译原理方面知识吧? 谁能再通俗的解释下... 谢谢了!

static静态变量,static用于声明内部变量或外部变量。静态变量可以是全局变量,也可以是局部变量,但都具有全局的生命周期,即其生存期从程序启动时开始直到程序结束时才终止。这种静态变量虽然只在其作用域内可以使用,但它却一直存在。

static静态数据成员,在定义类时经常用到,静态数据成员在存储类型上类似于一般的static静态变量,也具有全局性。静态数据成员属于整个类,区别于其他的成员类型属于对象,静态数据成员是被类的所有对象共享的。无论类的对象有多少,静态数据成员只有一份,只占有一个内存空间。并且即使没有创建类的一个对象,静态数据成员也是存在的。使用静态数据成员保证了该数据成员值的唯一性,也节约了内存空间。