(C语言)以下叙述中不正确的是
A)一个变量的作用域开始位置完全取决于变量定义语句的位置B)全局变量可以在函数以外的任何部位进行定义C)局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算...
A)一个变量的作用域开始位置完全取决于变量定义语句的位置
B) 全局变量可以在函数以外的任何部位进行定义
C) 局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用
D)一个变量说明为static存储类是为了限制其它编译单位的引用
最好说一下错在哪了,谢谢啦~~ 展开
B) 全局变量可以在函数以外的任何部位进行定义
C) 局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用
D)一个变量说明为static存储类是为了限制其它编译单位的引用
最好说一下错在哪了,谢谢啦~~ 展开
3个回答
展开全部
A不正确。应该是取决于声明而不是定义的位置。声明引入一个名称,定义引入一个实体,作用域和名称相关,生存期和对象(对象属于一种实体,其它实体还有类型等)相关。
C明显不正确。理由同上,static修饰局部变量为静态存储类,在首次进入函数时初始化一次,之后进入函数时不初始化而保留在上一次离开函数的值。此外,tssuperszy 的说法不确切,应该是在作用域外“不可见”而不是“不可访问”(特别地,在C++中两者有严格区别)。
D也是不正确的。理由如C选项的解释,使用static修饰局部变量不是为了限制其它编译单元的引用,而是为了在函数多次调用之间保存值。
====
[原创回答团]
C明显不正确。理由同上,static修饰局部变量为静态存储类,在首次进入函数时初始化一次,之后进入函数时不初始化而保留在上一次离开函数的值。此外,tssuperszy 的说法不确切,应该是在作用域外“不可见”而不是“不可访问”(特别地,在C++中两者有严格区别)。
D也是不正确的。理由如C选项的解释,使用static修饰局部变量不是为了限制其它编译单元的引用,而是为了在函数多次调用之间保存值。
====
[原创回答团]
参考资料: 原创
展开全部
C错,static局部变量存储在静态区中,结果可以保留到下一次,程序结束时才会销毁
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C
用static声明的静态变量可以保存至下一次调用,当然如果是局部变量在函数外仍然是不可访问的。
用static声明的静态变量可以保存至下一次调用,当然如果是局部变量在函数外仍然是不可访问的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询