请问C语言高手:关于一个概念问题!以下叙述错误的是:以下叙述错误的是:A.一个变量的作用域的开始位置完全取决于变量定义的位置; B.全局变量可以在函数以外的任何部位进行定义; c.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/27 13:16:53
请问C语言高手:关于一个概念问题!以下叙述错误的是:以下叙述错误的是:A.一个变量的作用域的开始位置完全取决于变量定义的位置; B.全局变量可以在函数以外的任何部位进行定义; c.
请问C语言高手:关于一个概念问题!以下叙述错误的是:
以下叙述错误的是:A.一个变量的作用域的开始位置完全取决于变量定义的位置; B.全局变量可以在函数以外的任何部位进行定义; c.局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用; D.一个变量说明为staic存储类是为了限制其他变异单位的引用!请问哪个错了,为什么?
请问C语言高手:关于一个概念问题!以下叙述错误的是:以下叙述错误的是:A.一个变量的作用域的开始位置完全取决于变量定义的位置; B.全局变量可以在函数以外的任何部位进行定义; c.
定义与声明是不一样的这一点要弄清才能弄明白这道题的本质 从狭义上将 需要分配内存空间的声明叫做定义 如int i;(不管它有没有初始值) 不需要分配内存空间的叫声明 如extern int i; A 如果是全局变量的话,他的作用域并不取决于定义的位置,而是声明的位置,例如 int main(){ int i;//这里的i会被认为是局部变量随机复制 } int i = 1; 和下面的区别 int main(){ extern int i;//这里的i会被认为是全局变量为1 } int i = 1; 当然 不管extern的话 变量i的有效范围是从定义开始到文件结束 从另一方面讲extern有着作用域扩展的作用 但实质上作用域还是取决于声明位置而不是定义位置,这选项其实很不严谨 B 应该是对的吧 C 这个也模棱两可,局部变量和静态局部变量有所区别么 如果是静态局部变量的话就会在静态存储区保存 如下面这个 int fun(void){ static int count = 10; // 事实上此赋值语句只在分配内存有效,并没有执行过 return count--; } int count = 1; int main(void) { printf("global\t\tlocal static\n"); for(; count