C++变量的生存周期

        在C++中变量有以下两种生命周期:
        (1)变量由编译程序在编译时给其分配存储空间(称为静态存储分配),并在程序执行过程中始终存在。。这类变量的生存周期与程序的运行周期相同,当程序运行时,该变量的生存周期随即存在,程序运行结束,变量的生存周期随即终止。
        (2)变量由程序在运行时自动给其分配存储空间(称为自动存储分配),这类变量为函数(或块)中定义的自动变量。它们在程序执行到该函数(或块)时被创建,在函数(或块)执行结束时释放所占用的空间。

        例        变量作用域示例
 

#include<iostream>
using namespace std;
int i = 0;
int main()
{
	int i = 1;
	cout << i << endl;
	{
		int i = 2;
		cout << i << endl;
		{
			i += 1;
			cout << i << endl;
		}
		cout << i << endl;
	}
	cout << i << endl;
	return 0;
}

        从上面例子可以看出,由于作用域的屏蔽效应,如果函数中又同名变量,则不能访问外部变量。为了能在函数内部访问函数外定义的变量,可以使用C++作用域运算符::。通过作用域运算符,即使该函数(块)中已经有与之同名的变量,也可以在函数(块)中使用定义在函数外的全局变量。例如:在上面main函数中可以通过::i来访问外部变量i。
        当程序较大时,利用名字屏蔽机制是非常必要的。但是这也会导致程序可读性变差,好的程序设计风格应尽量避免名字屏蔽。

参考《全国计算机等级考试二级教程——C++语言程序设计》

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值