Online Compiler C

#include <stdio.h> int sum(int a){ int c = 0; 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\n",sum(a)); } return 0; }
1) 这段代码定义了一个函数`sum`,它接收一个整数参数`a`。函数内部使用了一个局部变量`c`和一个静态局部变量`b`。每次调用`sum`时,`c`会被重置为0并加1,而`b`会保持上一次的值并加2。`main`函数中通过循环调用了`sum`函数5次并打印结果。

2) 提示:
- 注意静态变量`b`的特性:它只在第一次初始化时赋值3,之后会保留上一次调用结束时的值。
- 每次循环调用`sum(a)`时,参数`a`的值始终是2,但返回值会因为`b`和`c`的变化而不同。