C语言两个类似的小程序求教区别

2025-04-03 07:43:25
推荐回答(3个)
回答1:

关键在于n,第一个程序里n是临时变量,每次调用fun()都是0,第二个程序n是静态变量,会保存修改的值,三次调用后n变为3 ,所以最终计算结果不同

回答2:

static局部变量只被初始化一次,第二个程序的static int n=0;只在for循环第一次执行,以后都不会执行

回答3:

问题在于第一个static n每一次都在后面重新定义了m=n=0,而第二个static =0属于静态定义,也就是n的值改变后重新回到f()时,n不是为0,而是为n目前的数值。