C++ 标识符作用域以及对象生存期

1、C++中标识符作用域:

函数原型作用域:在函数声明中形参列表左右括号之间;

局部作用域(块作用域):声明变量所在的大括号之间

类作用域:类的成员所具有的作用域

命名空间作用域:using namespace std;全局命名空间

2、对象生存期:

静态生存期:在空间命名作用域中生命的对象具有静态生存期,与程序的运行期相同。在函数内部的局部作用域中声明具有静态生存期的对象,要使用关键字static,局部作用域中的静态变量,当一个函数返回后,下一次再调用时该变量还会保存上一回的值。

动态生存期:除上述两种情况,其余的对象都具有动态生存期。动态生存期变量不指定初始值意味着初始值不定。

【注】函数中的静态局部变量,具有全局寿命,只在第一次进入函数时初始化,以后调用时保留上一次的数值;而函数中的动态变量每次进入函数时都需要初始化。

#include <iostream>
using namespace std;

int i=1;//变量i具有命名空间作用域,静态全局变量,具有静态生存期 

void fun()
{
	static int a=2;
	static int b;//静态局部变量,只在第一次进入函数时初始化 
	int c=10;//动态局部变量 ,每次进入函数都要初始化 
	a+=2;
	c+=5;
	i+=32;
	cout<<"---fun---"<<endl;
	cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;
	b=a;
}
int main()
{
	static int a;//main函数中的静态局部变量 
	int b=-10;
	int c=0;    //main函数中的动态局部变量
	cout<<"---main---"<<endl;
	cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;
	c+=8;
	fun();
	cout<<"---main---"<<endl;
	cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;
	i+=10;
	fun();
	return 0;
	 
}
【注】结构化程序设计中程序模块的基本单位是函数,模块间对内存中数据的共享是通过函数之间的数据共享实现的。有两种途径:参数传递和全局变量!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值