了解三种C++存储方式

ZDNet软件频道 时间:2003-07-14 作者:ZDNet China |  我要评论()
本文关键词:cpptips
C++有三种存储方式:自动存储方式,静态存储方式和自由存储方式。在下面的段落中我们将阐述这三种存储方式的不同之处,并向大家展示怎样有效而安全地使用它们。
本文译自Builder.com,未经许可请勿转载C++有三种存储方式:自动存储方式,静态存储方式和自由存储方式。每一种存储方式都有不同的对象初始化的方法和生存空间。在下面的段落中我们将阐述这三种存储方式的不同之处,并向大家展示怎样有效而安全地使用它们。

自动存储方式

通常,我们并不把局部对象定义为静态的或者外部的,而是将它定义为自动的和寄存器的。函数的自变量都是自动存储,这种存储方式被称作栈存储。下面的例子包括了多种声明对象的方式、自动存储方式的各种形式。

//s' storage type s is determined by the caller
void f(const std::string & s);

//arguments passed by value are automatic
void g(register int n);

int main()
{
 int n; // automatic because local, non-static, non-extern
 register inti;  // register implies automatic
 auto double d;  // auto implies automatic
 g(n); //passing a copy of n; the copy is automatic
 std::string s;
 f(std::string temp()); // a temp object is also automatic
}

自动对象通常被建立在一个函数或者一个块中,当函数或块结束时,自动对象就被立即销毁。因而,当它每次进入一个函数或块的时候,自动对象将会创建一个全新的设置,自动变量和无类对象的缺省值是不定的。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134