作用域是表示某个标识符在什么范围内有效;
可见性是指标识符是否可见,可引用;
生存期,是指程序中的简单变量和类的对象,它们同自然界中的万物一样。也有自己的产生和消亡的生存期,变量和对象的生存期包含静态生存期和动态生存期。具有静态生存期的变量和对象,它们的生存期和程序运行相同;除了具有静态生存期的变量和对象,其余的变量和对象则具有动态生存期。具有动态生存期的变量和对象,它们处于被声明处产生,于自身的作用域结束处释放。
全局变量有文件作用域,也就是说,在整个文件作用域中,除了定义了同名局部变量块以外的其他地方(可见性问题),都可以直接引用全局变量;局部变量就是 具有块作用域的对象。
局部变量也可以有静态生存期,静态局部数据的生存期并不与局部作用域一致,它的生存期一直延续到程序运行结束。它产生于所在的函数第一次被调用、该局部静态变量被创建时。函数返回时,静态局部变量处于不可访问的休眠状态。当再次调用该函数时,静态局部变量又苏醒过来,处于可访问状态,与动态局部变量的区别在于,静态局部变量苏醒时,并不需要初始化,而是保持上次休眠状态开始之前的值。
可见性与作用域的区别:几乎是一样的,没有太大的区别,变量的作用域影响着变量的可见性。例如,内外层同时定义同名变量,则外层变量对于内层来说就是不可见的。
C++之变量的作用域,生存期,可见性
最新推荐文章于 2023-05-01 16:29:22 发布