Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1737755
  • 博文数量: 358
  • 博客积分: 2180
  • 博客等级: 大尉
  • 技术积分: 1810
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-17 13:47
文章分类

全部博文(358)

文章存档

2016年(17)

2015年(55)

2014年(9)

2013年(67)

2012年(181)

2011年(29)

分类:

2012-04-02 12:25:05

一.静态全局变量

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. static int a;
  4. void fun(){
  5.    ++a;
  6.    printf("%d\n",a);
  7. }
  8. int main()
  9. {
  10.    //a=1;//为了显示能自动初始化,给注释了。
  11.    printf("%d\n",a);
  12.    fun();
  13.    return 0;
  14. }
1.静态全局变量在全局数据区存放
(静态数据放在全局数据区,会保留着计算的结果,程序结束后才释放掉,而自动变量在退出定义它的函数体后,会被自动释放掉,等着下次重新赋值计算)
2.未经初始化的静态全局变量会被程序自动初始化为0 
3.static int a 在其他文件中访问不了,改为int a则可实现文件之间的共享
4.在其他文件中定义 int a的话,不会跟原本定义static int a文件中的a发生命名冲突
5.作用域是全局的
二.静态局部变量

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. void fun(){
  4.    static int a=1;
  5. //改为int a=1比较下
  6.   printf("%d\n",a);
  7.    ++a;
  8. }
  9. int main()
  10. {
  11.    fun();
  12.    fun();
  13.    return 0;
  14. }
1.静态局部变量在全局数据区存放
2.静态局部变量在声明出会被初始化,没有直接赋值的话,会自动初始化为0
3.静态局部变量在全局数据区驻留着计算的结果,不会被释放,直到程序运行的结束
4.作用域是局部的,随着函数退出而消失
三.静态函数

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. static void fun(){
  4.    int a=1;
  5.    printf("%d\n",a);
  6. }
  7. int main()
  8. {
  9.    fun();
  10.    return 0;
  11. }

1.静态函数不能被其他文件访问
2.其他中可以定义相同名字的函数,不会产生冲突
 
 
哪里不对的,指点指点。不要指指点点。
阅读(562) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~