c语言求学霸们的详细解析

img

在aa函数中,a是静态变量,a的初始化只执行一次,相当于全局变量。
i=1,执行aa(1)
a=1,return a=a+n=1+1=2; (a=2,并返回2),printf显示2
i=2,执行aa(2)
a=2,return a=a+n=2+2=4; (a=4,并返回4),printf显示4
i=3,执行aa(3)
a=4,return a=a+n=4+3=7; (a=7,并返回7),printf显示7

所以,最后显示的是247

静态变量会累加
输出247

static声明的变量只会初始化一次,之后的调用都是使用改变后的a值