原创作者: fullfocus
阅读:1052次
评论:0条
更新时间:2011-05-26
今天碰到一个局部静态变量的作用域的问题。有些诱惑,所以回去上机实践了以下,总结如下:
cpp 代码
- #include <stdio.h>
- int* f1(int i)
- {
- static int s = 2; //局部静态变量,其只在本函数之内存在。但又与局部变量相区别,其在离开函数时并不消失
- s = s +i;
- return &s; //可以返回地址
- }
- void main()
- {
- int *a = f1(1);
- printf("cout:%d\n",*a);
- a = f1(1); // s只初始化一次
- printf("cout:%d\n",*a); //
- //s = s+1; 出错,s在此范围不存在。其不是file scope
- }
运行结果:
评论 共 0 条 请登录后发表评论