4大作用域 简述4种类型的变量及其作用范围分别是哪些?
简述4种类型的变量及其作用范围分别是哪些?
局部变量可以分为动态局部变量(没有特殊声明的变量通常是动态局部变量)和静态局部变量(用static关键字声明的变量,如static int a)。
两者的区别在于静态局部变量的生存期比动态局部变量的生存期长,动态局部变量的生存期在定义的范围内。如果在函数中定义,则函数结束,变量结束,变量的值将不会保存。
并且静态变量的生存期是整个源程序(也可以说它是一个文件,在不同的环境中调用不同)。两者的范围是相同的。它只能在定义它的函数中工作。没有这个功能它就不能工作。
全局变量:在函数外部定义的变量称为全局变量。全局变量可以被此文件(作用域)中的其他函数共享,其有效范围(生存期)从变量的定义开始到文件的结尾。
如果外部变量与同一源文件中的局部变量同名,则外部变量在局部变量的作用域内被“屏蔽”,即全局变量不起作用。
什么是问题域、作用域呢?
“问题域”是指问题的范围、问题之间的内在关系和逻辑可能性的空间。在许多编程语言中,作用域是非常重要的。一般来说,一段程序代码中使用的名称并不总是有效/可用的,而限制名称可用性的代码的范围就是名称的范围。作用域的使用提高了程序逻辑的局部性,提高了程序的可靠性,减少了名称冲突。对于一个对象(其他对象也一样),在main函数中,该对象的作用域位于最近的一对花括号中。析构函数在花括号的末尾调用;全局对象的作用域是声明之后的整个文件,析构函数在末尾调用。另外,临时生成的对象在使用后会立即解构
模块的作用域是指在模块中确定的作用域,是指受此确定影响的所有模块。如果模块包含受决策影响的操作,则该模块在决策的范围内。如果模块的执行取决于决策的结果,则该模块及其直接或间接调用的模块都在决策的范围内。模块的控制域是指模块本身及其直接或间接调用的模块。如果模块的作用域不在控制域内,会增加模块间的数据传输量,导致模块间的控制耦合。C语言程序由主函数和一些其它函数(或没有其它函数)组成。程序从主函数开始,直到主函数结束。函数的作用域可以理解为函数的有效区域:主函数可以调用其他函数。其他函数可以互相调用,但不能调用主函数。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。