由static引发的问题
来源:互联网 发布:点对点下载软件 编辑:程序博客网 时间:2024/05/16 06:01
局部变量:
在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们。这称为局部变量。
全局变量:
而在函数之外定义的变量称为外部变量,也称全局变量。全局变量可以为本文件中其他函数所共用。它的有效范围从定义变量的位置开始到本源文件结束。
示例代码:
/*
** Copyright(C)[2010].All rights reserved.
** Filename: test_static.c
** Description:
** Author Time Version State
** Junjie Li 2010-11-21 V0.0.1 create
*/
#include <stdio.h>
static int j;
void fun1(void)
{
static int i=0;
i++;
printf( "&i=%p/ti=%d/n", &i, i );
}
void fun2(void)
{
j=0;
j++;
printf( "j=%d/n",j );
}
int main( int argc, char **argv )
{
int k;
for ( k=0; k<10; k++)
{
fun1();
fun2();
}
return 0;
}
运行下看看结果;
再把那个static int i=0; 中的static 去掉再看看是什么结果?
结论:被static修饰的局部变量存放在静态区。即使函数运行结束。静态变量的值也不会销毁。函数下次使用时仍然能用到这个值
而一般的局部变量在函数返回时就自动销毁了。就是上面讲过的栈变量
简易结论是:栈变量(包括局部变量)在函数返回的时候会自动销毁。就是说没有了。不能用了。
- 由static引发的问题
- 由Java里static引发的感受
- 由Typedef引发的问题
- 由UseSubmitBehavior引发的问题
- 由引用引发的问题
- 由LaunchMode引发的问题
- static引发的诡异问题
- 由++操作引发的问题
- 由const引发的版本控制问题
- 由一个问题引发的思考
- 由py2exe引发的问题及解决方案
- 由object不能比较引发的问题
- 由 EditorBrowableAttribute 引发的一些问题
- Spinner(1): 由SDK引发的问题
- 由py2exe引发的问题及解决方案
- 由n阶幻方问题引发的思考
- 由webdings引发的乱码问题
- C/C++ 由fopen_s引发的问题
- NULL和空字符串的布尔值
- Office Word2007怎样设密码?
- SPI总线测试和分析
- 判断链表是否有环以及找出环的入口点知识总结
- 对公钥和私钥使用的理解
- 由static引发的问题
- Windows XP系统优化超简单实用版
- MyEclipse+Tomcat搭建开发JSP
- 如何学习vc++(vc的用处)
- JPA的一对多
- 搭建Qmail邮件系统(中篇)
- 软件项目需要很多人一起完成可能是一个骗局
- 内存优化的两个类:SoftReference 和 WeakReference
- 学C++时要注意的。绝对经典!!