zoukankan      html  css  js  c++  java
  • [C++那些事]002数据的存放

    学习写程序,就不能不对程序的数据存放有一定的了解。可能你常常听说栈啊、堆啊什么的,下面咱们看看数据的存放有哪几个位置

    ①.栈区

    存储【函数参数】以及【局部变量】,也称为自动变量,关键字auto,若无特别说明,默认包含关键字auto。生命周期仅局限于某个函数作用域额内,由编译器自动分配和释放。操作方式类似数据结构的栈,LIFO原则

    ②.堆区

    存储程序员动态创建的对象,由程序员创建和释放,注意它与数据结构中的堆是两回事,分配方式倒是类似于链表

    ③.寄存器区

    存储栈顶指针(SP)和指令指针(IP),由操作系统负责, 一般加register关键字表示寄存器变量

    ④.全局区(静态区)

     存储全局变量(静态变量),由操作系统负责,程序运行结束销毁。
    全局变量不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量
    静态变量有关键字static,属于本类所有对象共享,作用域限于声明此变量所在的文件,其他的文件即使用extern声明也不能使

    ⑤.文字常量区

     存储常量字符串,比如代码中定的“HelloWorld”等,由操作系统负责, 程序结束后由系统销毁
    在文字常量区的字符串不可修改。当字符串相同时候,系统还会讲指针指向同一处

    ⑥.程序代码区

     存放函数体的二进制代码
  • 相关阅读:
    WCF和Socket
    MBA-数学
    80端口被占用
    linux系统root密码忘了怎么办 三种方法快速找回root密码
    px、em、rem、%、vw、wh、vm等单位有什么区别?
    知道id如何进入
    查询两个时间段间隔多久的数据
    jsp中的判断
    判断手机登陆还是电脑登陆
    配置pom.xml、spring.xml、spring-mvc.xml、spring-mybatis.xml、web.xml
  • 原文地址:https://www.cnblogs.com/sky-co/p/3448634.html
Copyright © 2011-2022 走看看