A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hailiqh 中级黑马   /  2015-9-30 17:31  /  1233 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

例:
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是啥作用?

3 个回复

倒序浏览
1,想要实现对象中的共性数据的对象共享。可以将这个数据进行静态修饰。 
2,被静态修饰的成员,可以直接被类名所调用。也就是说,静态的成员多了一种调用方式。类名.静态方式。 
3,静态随着类的加载而加载。而且优先于对象存在。  
回复 使用道具 举报
不知道啊
回复 使用道具 举报
这就是static的作用之一啊,如果没有static,每次调用函数都要初始化一下变量b。有了static,那么这个变量就被存储在静态存储区(全局变量一样也是存储在静态存储区,只不过二者的作用范围不一样),在这个区里的变量初始化只有一次,只有第一次
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马