...<stdio.h> fun(int x, int y) { static int m=0, i=2; i+=m+1...
发布网友
发布时间:2024-03-22 15:28
我来回答
共1个回答
热心网友
时间:2024-10-05 06:42
c语言的static变量是在程序加载的时候就为之分配内存的,一直到程序结束,而不像普通变量那样函数执行一次分配一次。
fun函数中的局部变量m、i是静态局部变量(它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。),所以每次函数调用完后的,它们的至不会丢失。再次调用fun函数时,都是上次调用fun函数时修改后的值。
第一次调用结束后:m的值是5,i的值是3
那么在第二次调用时:
执行 i+=m+1 这句中 m的值是5,i是3,执行完后 i的值9,那么 执行m=i+x+y后,m的值是m=9+1+1=11。
你可以参考一下:以下关于c语言中static 变量链接
http://wenku.baidu.com/link?url=egN9VhqBBM-hirS8SOHTRP5n1A06ovbv6IuKQ5aOxgPcOlQ6Ndv-q7mNfJlf8frVNrlXjG5AlFn909ngrV-qGfC6YDzRX0mjKDif-WNSTc3