Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149874
  • 博文数量: 91
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 970
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-09 11:40
文章分类
文章存档

2011年(1)

2010年(4)

2009年(86)

我的朋友
最近访客

分类: C/C++

2009-06-12 10:47:08

#include <stdio.h>
func(int a,int b)
{
    static int m=0,i=2;
    i+=m+1;
    m=i+a+b;
    return m;
}
void main()
{
    int k=4,m=1,p;
    p=func(k,m);printf("%d,",p);
    p=func(k,m);printf("%d,",p);
}

输出为:8,17

内部静态变量在第一次进入包含它的函数赋初值后,以后再进入该函数时赋值语句不起作用。所以当第二次调用func()时m,i的值不是0和2了。

阅读(277) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~