C。
在函数内部或复合语句内定义变量时,如果没有指定的存储类型或使用了auto说明符,系统就认为所定义的变量具有自动类别。
形参即函数的自变量,其初值来源于函数的调用。只有在程序执行过程中调用了函数,形参才有可能得到具体的值,并参与运算求得函数值。形参表相当于变量说明,但应特别注意:此处只能使用类型标识符,而不能直接使用类型。
用auto(或省略)来区分说明的局部变量。当执行进入局部变量所在的块时,在栈上为变量分配存储,退出块时,存储单元被回收。具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。在函数内部定义的变量成为局部变量。
扩展资料:
1、register关键字提示编译器把局部变量或函数的形参尽可能放入CPU的寄存器中,以便快速访问。因此变量的字节长度不应该超过寄存器的长度。不要用取地址符(&)去获得此变量的内存地址。例如:
{
register int Miles
}
2、static是全局变量的默认存储类。例如:
static int Count
int Road
main()
{
printf("%d\n", Count)
printf("%d\n", Road)
}
Count与Road两个变量都是默认的static存储类。
3、extern存储类是指全局变量可以被各个对象模块访问。使用extern关键字时,表示变量已经在别处定义,所以不能在此处初始化。
参考资料:
百度百科-形式参数
百度百科-存储类
C语言中形参的默认存储类别是(A)auto (B) static (C)register (D)extern
解:
A.auto B.static C.register D.externA 的变量在堆栈里,自然是运行时
B 是静态变量
C 是寄存器变量,使用的是cpu的寄存器
D 是全局变量
BD都是放在数据段中的,编译的时候就已经确定了位置(有的编译器对b和d的处理不一样)