#include <stdio.h> int sum(int a) { int c = 0; static int b = 3; //static修饰之后,第一次执行int b=3, c += 1; b += 2; return (a + b + c); } int main() { int i; int a = 2; for (i = 0; i < 5; i++) { printf("%d,", sum(a)); } }
第一次:c=1,b=5,2+5+1=8
第二次:由于静态变量不释放空间,b=5, 最后结果为 2+7+1=10
第三次:2+9+1=12
每一次相当于在b的基础上加2
8,10,12,14,16