www.openedv.com
您好,欢迎您!    会员注册 | 登入 
公告:欢迎访问www.openedv.com开源电子网,开源共享共同进步,祝您新年快乐,万事如意!
设为首页 | 加入收藏
论坛首页 » 编程语言学习 前往: 
static 小问题,,,见笑见笑~~
发表人 内容
[Down] [Up]
[楼主位] 提刀上马

等级:NO
注册时间:
2011/08/02 16:15
文章: 91
离线

#include static int j;
void fun1(void)
 {
static int i=0;
 i++;
 printf("%d ", i);
}

 void fun2(void)
 {
 j=0;
 j++;
 printf("%d ", j);
}

int main()
{
 for(int k = 0; k < 5; k++)
 { 
    fun1(); fun2(); printf("\n"); }
     getchar();
     return 0;
} 输出结果为: 1 1     2 1     3 1      4 1        5 1 也就是最后结果,i = 5, j = 1;
这个 i 的值有点不理解,,这儿的static难道不起作用么   麻烦哪位哥解释下

i 的这个static,不是全局变量的话,,是怎么处理的呢?

这儿的静态局部变量,,是怎么静态的呢???


[加为好友] 回复 引用回复
[Down] [Up]
[1楼] 正点原子


等级:NO
注册时间:
2010/12/02 10:41
文章: 8089
来自: 湖南
在线

回复【楼主位】 提刀上马 :
---------------------------------
多看看c语言的书吧。
static就是静态的,他的值是不会丢失的。和你的全局变量效果差不多。



我的淘宝小店:http://shop62103354.taobao.com
[加为好友] 回复 引用回复
[Down] [Up]
[2楼] 提刀上马

等级:NO
注册时间:
2011/08/02 16:15
文章: 91
离线

回复【1楼】 正点原子 :
---------------------------------
嗯,谢哥,,这儿static定义局部变量是不是只执行一次呢?? 


[加为好友] 回复 引用回复
[Down] [Up]
[3楼] 正点原子


等级:NO
注册时间:
2010/12/02 10:41
文章: 8089
来自: 湖南
在线

回复【2楼】 提刀上马 :
---------------------------------
初始化只执行一次,之后就一直保留上一次使用后的值。



我的淘宝小店:http://shop62103354.taobao.com
[加为好友] 回复 引用回复
[Down] [Up]
[4楼] tjpumanan

等级:NO
注册时间:
2011/10/18 21:05
文章: 2
来自: 天津
离线

#include static int j; 
这是什么意思啊?


[加为好友] 回复 引用回复
[Down] [Up]
[5楼] 正点原子


等级:NO
注册时间:
2010/12/02 10:41
文章: 8089
来自: 湖南
在线

回复【4楼】 tjpumanan :
---------------------------------
非标准写法,不建议使用。
我也不知道啥意思。



我的淘宝小店:http://shop62103354.taobao.com
[加为好友] 回复 引用回复
 
前往: 

Powered by ALIENTEK工作室 © 粤ICP备12000418号-1