一个关于静态局部变量以及全局变量的例子
2011-11-02 09:31
253 查看
先看一段代码
程序的执行结果如下:
![](http://hi.csdn.net/attachment/201111/2/0_1320197185Y15U.gif)
程序中定义了一个静态局部变量i,以及一个静态全局变量j;它们都在内存的静态存储区,前者作用域为函数体内,其它地方不可见,而后者作用域为定义处到文件结束,其它文件不可见,每次调用fun1都使i的值加1,而每次调用fun2都先将其复制为0,在加1,所以j的值永远都为1.
static int j; void fun1(void) { static int i = 0; i++; printf("i = %d \n", i); } void fun2(void) { j = 0; j++; printf("j = %d \n", j); } int main(int argc, char* argv[]) { for (int k = 0; k < 10; k++) { fun1(); fun2(); } return 0; }
程序的执行结果如下:
![](http://hi.csdn.net/attachment/201111/2/0_1320197185Y15U.gif)
程序中定义了一个静态局部变量i,以及一个静态全局变量j;它们都在内存的静态存储区,前者作用域为函数体内,其它地方不可见,而后者作用域为定义处到文件结束,其它文件不可见,每次调用fun1都使i的值加1,而每次调用fun2都先将其复制为0,在加1,所以j的值永远都为1.
相关文章推荐
- 全局变量,局部静态变量初始化以及类静态成员变量初始化
- c/c++中静态局部变量以及全局变量的使用(转)
- 关于局部变量、静态局部变量、全局变量、静态全局变量
- 关于js局部、全局变量以及生存期的笔记
- 局部变量、全局变量、堆、堆栈、静态和全局
- 关于全局变量,局部变量以及成员变量的区别
- 全局变量、静态全局变量、静态局部变量和局部变量
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- 局部变量、全局变量、堆、堆栈、静态和全局
- C和C++关于变量声明的区别以及一个矛盾的现象
- 全局变量、静态全局变量、静态局部变量和局部变量的区别
- 局部变量,全局变量,静态局部变量,静态全局变量的异同
- 全局变量、局部变量、静态全局变量、静态局部变量在内存里的区别以及栈与堆的区别
- [zt] 全局变量、静态全局变量、静态局部变量和局部变量,寄存器变量的区别
- 内存分配方式(动态/静态)的不同对const变量(全局/局部)访问性的影响
- static 全局变量 全局变量 静态局部变量 局部变量 静态函数 普通函数 之间的区别
- 关于检测手机信号强度,wifi信号强度以及检测周围wifi热点的一个小例子
- 关于静态库中使用全局变量可能导致的问题
- 关于如何初始化一个类内的静态二维数组变量问题
- C/C++中全局变量,静态局部变量,局部变量的初始化问题