Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132467
  • 博文数量: 75
  • 博客积分: 1485
  • 博客等级: 上尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-11 20:57
文章分类
文章存档

2011年(1)

2010年(15)

2009年(59)

我的朋友

分类: C/C++

2009-05-23 22:15:13

#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了。

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