黑马程序员技术交流社区

标题: 关于static [打印本页]

作者: hailiqh    时间: 2015-9-30 17:31
标题: 关于static
例:
void test()
{static int b = 10;
printf("%d\n",b++);}
int main( )
{for (int i = 0;i<10;i++){
   test( );}
return 0;}
结果为:
10
11
12
13
14
15
16
17
18
19
老师说如果去掉static结果为10 .........10(10个)
不明白这是为什么?static是啥作用?
作者: meijunwei6275    时间: 2015-9-30 17:53
1,想要实现对象中的共性数据的对象共享。可以将这个数据进行静态修饰。 
2,被静态修饰的成员,可以直接被类名所调用。也就是说,静态的成员多了一种调用方式。类名.静态方式。 
3,静态随着类的加载而加载。而且优先于对象存在。  
作者: 任振铭    时间: 2015-9-30 19:32
不知道啊
作者: 洪吉童    时间: 2015-9-30 20:49
这就是static的作用之一啊,如果没有static,每次调用函数都要初始化一下变量b。有了static,那么这个变量就被存储在静态存储区(全局变量一样也是存储在静态存储区,只不过二者的作用范围不一样),在这个区里的变量初始化只有一次,只有第一次




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2