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

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

    ①.栈区

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

    ②.堆区

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

    ③.寄存器区

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

    ④.全局区(静态区)

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

    ⑤.文字常量区

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

    ⑥.程序代码区

     存放函数体的二进制代码
  • 相关阅读:
    20150805-20150807 tradeDate-----python
    nutz_web应用中主页跳转到登录页面的方式
    nutz中实现登录验证
    C#之继承
    C#中Page执行顺序:OnPreInit()、OnInit()……
    利用堆栈实现走迷宫算法
    对数组结构体按照K值翻转
    实现多项式的加法和乘法运算
    两个有序链表的合并
    队列的比较和存储方式
  • 原文地址:https://www.cnblogs.com/sky-co/p/3448634.html
Copyright © 2011-2022 走看看