C语言问题 有以下程序: #include<stdio.h> int f(int m) { static int n=0; 求详解

2024-11-15 17:54:06
推荐回答(2个)
回答(1):

#include

int f(int m)
{
static int n=0; //静态变量,只初始化一次,第二次为上一次的剩余结果
n+=m;
return n; //第一次n=1 第二次m=1,n+=m=2
}
void main()
{
int n=0;
printf("%d,",f(++n)); //++n,先自增,后调用n,相当于调用f(1)
printf("%d\n",f(n++)); //n++,先调用n,后自增,相当于调用f(1)
}结果为1,2

回答(2):

这题主要考++n和n++的区别
++n:将n的值+1后作为表达式的值
n++:将n的值作为表达式的值后n自加1