标题:高手指点static的用法
只看楼主
vac0516
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-1-26
结帖率:0
已结贴  问题点数:20 回复次数:5 
高手指点static的用法
static int j;
void fun1(void)
{
    static int i=0;
    i++;
}

void fun2(void)
{
    j=0;
    j++;
}
int main()
{
    for(k=0;k<10;k++)
     {
          fun1();
          fun2();
     }
   return 0;
}

请问i,j的值是多少?
搜索更多相关主题的帖子: void static 
2013-01-26 14:41
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:5 
你的那个k没有定义吧。

i = 10
j = 1

My life is brilliant
2013-01-26 15:44
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
得分:5 
楼上正解

I have not failed completely
2013-01-26 17:41
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:5 
static可以把一个外部链接的标志(包括变量和函数)变成内部链接,这样可以保护;
可以把一个自动变量的生存期(在stack中)变成静态(在data段)

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-01-28 08:01
zhouruheng
Rank: 2
等 级:论坛游民
帖 子:5
专家分:14
注 册:2013-1-28
得分:5 
回复 2楼 lz1091914999
这个怎么理解的?函数内部static和外部static有什么区别呢?
2013-01-28 13:31
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
得分:0 
函数内部的static所声明的是静态全局变量,其对象变量的地址在静态区,
一直到程序结束才收回


外部static所声明的对象是函数,表面其作用区仅局限于目前所在的c源文件中
当连接多个c文件时有一定的作用,避免互相干扰

I have not failed completely
2013-01-28 20:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-397694-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050588 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved