【C++】自动存储持续性、自动变量和栈

本文探讨了C++中的自动存储持续性,解释了自动变量和栈的概念。自动存储持续性的变量在函数中声明,作用域局限于局部,并在函数结束时自动释放。同时,介绍了程序如何使用栈来管理自动变量,栈通过两个指针跟踪内存分配,随着函数调用和结束动态调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 自动存储持续性

2. 自动变量和栈


 1. 自动存储持续性

在默认情况下,在函数中声明的函数参数和变量的储存持续性为自动,作用域为局部,没有链接性。也就是说,如果在main()中声明了一个名为texas的变量,并在函数oil()中也声明了一个名为texas变量,则创建了两个独立的变量——只有在定义它们的函数中才能使用它们。 
另外,当程序开始执行这些变量所属的代码块时,将为其分配内存:当函数结束时,这些变量都将消失。 
如果在代码块中定义了变量,则该变量的存在时间和作用域将被限制在该代码块内。例如:
 

int main() 
{
    int teledeli = 5;
    {   //websight allocated
        cout << "Hello\n";
        int websight = -2;  //websight scope begins
        cout << websight << ' ' << teledeli << endl;
    }   //websight expires
    cout << teledeli << endl;
}   //teledeli expires

当内部代码块的变量也为teledeli,程序执行内部代码块中的语句时,将teledeli解释为局部代码块变量。 
即:新的定义隐藏了以前的定义,新定义可见,旧定义暂时不可见。在程序离开该代码块时,原来的定义又重新可见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值