c语言。没有返回值,每次a都是8,x都是4,为啥不选A?

如题所述

第1个回答  2014-07-06
因为X是静态变量,在程序f(a)结束完后并不释放空间,保留运行的值,可以参考C语言的变量类型那一章追问

第二次f
x还是3,加1后仍然是4

第二次f
x还是3,加1后仍然是4

追答

第二次f x是4,+1后变为5;第一次f(a)函数中x是静态变量,+1后变为4,函数结束时变量不释放空间,所以保留值为4,第二次f(a)函数时,忽略掉static int x=3;语句,x+1后变为5.而a是auto变量,函数结束时就释放值,所以每次f函数时变量a的起始值都是7,静态变量是在整个程序结束时才释放。

追问

搜嘎,多谢!

本回答被提问者采纳
第2个回答  2014-07-06
选C,x是静态型,在程序运行时就分配了固定的内存空间,直到程序运行结束才释放。
第3个回答  2014-07-06
选C a只是参数 x是静态变量
第4个回答  2014-07-06
不是选A,而是选C。