欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

EasyC++自动存储持续性

时间:2022-03-19 10:48:15|栏目:C代码|点击:

转自微信公众号:Coder梁(ID:Coder_LT)

自动存储持续性:

这个概念乍一看有些拗口,其实它很简单,指的是在函数定义中声明的变量的存储持续性是自动的:它们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,它们使用的内存被释放。

在默认情况下,我们在函数中声明的变量和函数的参数都是自动存储持续性,它的作用于为局部,没有链接性。

这里的链接性描述了名称如何在不同的单元之间共享,链接性为外部的名称可以在文件之间共享,链接性为内部的名称只能由一个车文件中的函数共享。自动变量的名称没有链接性,也就是不能共享。

这段话是一段专业性描述,看不太明白没有关系。简单理解,就是说如果我们在main函数当中声明了一个变量a,并且在函数test当中也声明了一个同样的变量a。两者之间是完全独立的,彼此不会有任何影响,因为它们只有在声明了它的函数中才能使用。

当程序执行test函数时,test中的a才被创建,当test执行结束,a即被销毁。

其实变量的作用域的最小划分并不是函数,而是代码块。我们在代码块当中创建的变量,它的使用范围作用域就只有当前代码块。例如:

int main() {
 int a = 4;
    {
        int b = 10;
    }
}


我们在main函数当中定义了一个变量a和一个变量b,但是这两个变量定义的位置不同。b定义在了一个代码块(代码块使用花括号表示)当中,对于a来说,它的作用域是整个main函数,而b只在花括号当中生效。

更有意思的是下面这段代码:

int main() {
    int a = 4;
    {
        int a = 5;
        cout << a << endl;
    }
    cout << a << endl;
}

答案是输出的结果是5和4,为什么呢?

因为内部和外部都有一个变量a,当执行内部代码的时候,编译器隐藏了外部的定义。而程序离开代码块时,外部的定义又重新恢复。

上一篇:C++实现遗传算法

栏    目:C代码

下一篇:C++万能库头文件在vs中的安装步骤(图文)

本文标题:EasyC++自动存储持续性

本文地址:http://www.codeinn.net/misctech/196638.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有