组词大全

在函数体内定义了下述变量a,a的存储类为()。inta; A. 寄存器类 B. 外部类 C. 静态类 D. 自动类

在函数体内定义了下述变量a,a的存储类为()。inta; A. 寄存器类 B. 外部类 C. 静态类 D. 自动类

在C语言中,变量的存储类别由声明时的关键字或默认规则决定。函数体内定义的变量若未显式指定存储类别关键字(如static、register等),默认属于自动存储类别(auto)。这类变量的生存期仅限于函数调用期间,作用域为定义它的函数或复合语句内部,存储在内存的栈区。

选项分析:

A. 寄存器类:需用register关键字声明,用于频繁访问的变量(如循环计数器),存储在CPU寄存器中(编译器可能优化为普通变量)。题目中无此关键字,排除。

B. 外部类:需用extern关键字声明,用于引用其他文件或本文件后续定义的全局变量,作用域为整个程序。题目变量在函数体内,非全局,排除。

C. 静态类:需用static关键字声明,函数内的静态变量生存期为整个程序运行期间(存储在静态区),但题目中未使用static,排除。

D. 自动类:函数内未指定存储类的变量默认属于此类,符合题目描述。

答案:D

思考:若将题目中的变量声明改为static int a;,存储类别会如何变化?这会使其变为静态局部变量,生存期延长至程序结束,但作用域仍限于函数内部,这体现了static关键字对局部变量“生存期”的改变。

相关成语


成语首拼