#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) |