第一次调用后,输出: 7,
第二次调用后,输出: 15
所以,总的输出是:
7,15
程序运行时,首先进入main()函数。
在main()函数内第1句表示一个函数声明,函数在后续定义中实现
第2句创建int型变量x,y,z,并给x赋值1,y赋值2;
第3句第一次调用fun(x,y)函数,在函数内部,因为变量p和t有关键字static修饰,是一个静态变量,该句初第一次调用时会执行外,后续调用不会执行。在fun()函数内,执行完第2句,t=4,p=1,执行完第3句,t=4,p=7。然后将p值返回至主函数调用。所以z=7,程序打印出7.
在主函数第4句第二次调用fun(x,y)函数,执行fun()函数是,会跳过第一句的赋值语句,执行第2句,执行完后,t=12,p=7,执行完第3句,t=12,p=15。将p值返回主函数,故z=15,程序打印出15.
在此程序中,重点需要理解static修饰的变量是静态变量,其作用区域为整个程序范围,变量只有在程序执行完毕后才释放。