首页 > 试题广场 >

static作用

static有三个作用: 1.static在修饰局部变量的时候,其使得局部变量的生命周期发生改变,使得其放在data段,直到程序运行结束才结束。 2.static在修饰全局变量的时候,作用是改变其作用域,使得全局变量只能在定义的文件中使用。 3.static在修饰函数的时候,同样也是只能时函数只能在当前的文件中使用。
发表于 2019-01-07 23:12:04 回复(0)

1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下一次调用时仍维持上次的值;

2)在模块内的static全局变量可以被模块内所有函数访问,但不能被模块外其他函数访问

3)在模块内的static函数只可被这一模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块内

4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份复制

       5)在类中的static成员变量属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量

发表于 2019-01-08 11:59:30 回复(0)
静态变量,比如在函数中定义静态变量,第二次引用该函数时,这个变量的值不会重新初始化,而是上次改变的值。 void fun() { static int a=1; a+=5; } ——第二次引用函数—— a=6
发表于 2019-01-07 00:05:25 回复(0)
1.隐藏:当编译多个文件时,没有用static的变量和函数是可见的,加了的被隐藏。 2.当static在函数内部定义变量的时候,生命周期是整个程序结束,但是作用域还是函数范围内。并且只能初始化一次,同时只有静态变量和全局变量放在静态区。 3. 默认初始化为零
编辑于 2019-01-17 02:14:39 回复(0)
Static作用: 1、隐藏,当同时编译多个文件时,所有未加static的全局变量和函数都具有全局可见性。 2、保持变量内容的持久,存储在静态数据区的变量会在程序放开是运行时就完成初始化,也是唯一一次初始化,共有两种变量存储在静态存储区,全局变量和static变量,PS:如果static局部变量在函数内定义,他的生存期为整个源程序,但其作用域和自动变量相同,只能在定义该变量的函数内使用,退出该函数后,尽管该变量还存在,但是不能使用。 3、默认初始化为0,
发表于 2019-05-04 12:37:11 回复(0)