`
vawe666
  • 浏览: 43058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言中到变量与内存的关系

 
阅读更多
一个由C/C++编译的程序占用的内存分为以下几个部分,
  1、栈区(stack)—  由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。其操作方式类似于数据结构中的栈。 
  2、堆区(heap) —  一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。分配方式类似于链表。
  3、全局区(静态区)(static)—存放全局变量、静态数据、常量。程序结束后由系统释放。
  4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放。
  5、程序代码区—存放函数体(类成员函数和全局函数)的二进制代码。

C中,宏定义的常量并不会分配空间,而是在代码预编译时替换这个宏。而const修改的常量,需要根据这个常量定义而定,比如如果是全局数据则会在全局区分配空间,而局部数据会在栈区分配。
分享到:
评论

相关推荐

    C语言中指针变量的教学探讨.pdf

    在教学中,笔者对指针变量与一维数组的关系也做了介绍。例如,一维数组变量a有9个连续的门牌号,而p a为(整数型)指针变量。赋值部分包括p a = a;把a【0】的地址(门牌号)赋给指针变量p a。这样,p a就保存了a【0...

    浅谈C语言中指针变量的定义与应用 (1).pdf

    浅谈C语言中指针变量的定义与应用 _pointer_是C语言中最具特色的内容,也是学习C语言的一个难点。正确而灵活地运用它,可以有效地表示复杂的数据类型,使程序简洁、紧凑、高效。 1. 指针变量的定义 在C语言中,...

    C语言中变量与其内存地址对应的入门知识简单讲解

    了解变量与内存地址的关系是学习C语言,尤其是指针概念的关键。 首先,我们需要明白内存是一个用于存储数据的连续空间,就像电影院的座位一样,每个座位都有编号以便找到特定的座位。在计算机内存中,每个数据单元...

    C语言内存管理

    C语言内存管理是一个程序员必须掌握的重要知识点,因为它直接关系到程序运行的稳定性和效率。内存泄漏是C语言中一个非常典型的问题,指的是程序中分配的堆内存无法再被访问或回收,最终导致可用内存不断减少。内存...

    C语言和内存(极其重要)1

    在计算机科学中,C语言是一种底层编程语言,它与内存管理有着密切的关系。理解C语言与内存的工作原理对于编写高效且无错的程序至关重要。本文将深入探讨C语言中涉及内存的几个关键概念,包括内存层次结构、CPU指令和...

    c语言变量和常量的使用1

    在C语言中,内存管理也与变量息息相关。变量的内存分为栈内存(自动变量)和堆内存(动态分配的内存)。栈内存由编译器自动管理,而堆内存则需要程序员手动申请和释放,使用malloc()和free()函数。 此外,初始化也...

    c语言指针,指针与变量,指针与指针

    在C语言中,指针是一个变量,它存储的是另一个变量的内存地址。通过指针,我们可以直接访问和修改存储在特定地址的值。声明一个指针变量通常用*符号,如`int *p;`表示p是一个指向整型变量的指针。初始化指针时,我们...

    C语言指针变量研究.pdf

    指针变量是C语言程序设计中的一种基本数据类型,它占有重要地位,指针变量的灵活性是C语言的主要特色之一。指针变量能够方便表示各种复合数据类型,可以使用数组和字符串,同时也可以处理内存地址。 指针和地址的...

    浅析C语言中内存与指针使用的几个问题.pdf

    1. 指针与内存的关系:指针是C语言中用来直接操作内存地址的变量,通过指针可以对内存中的数据进行读取和修改。由于C语言提供了指针操作,因此程序在运行时需要有效管理内存分配和释放,避免内存泄漏等问题。 2. ...

    C语言指针(指针与地址、数组的关系)

    《C语言指针:深入理解指针与地址、数组的关系》 C语言中的指针是其强大功能的核心,它使得程序员可以直接操作内存地址,从而高效地处理数据和控制程序流程。本文将深入探讨指针的基本概念,以及它与内存地址和数组...

    C语言从入门到精通

    《C语言从入门到精通》中可能提供了丰富的例程和习题,鼓励读者动手实践,提高编程能力。 最后,书中附带的资源,如"本软件下载说明.htm"和"本软件使用说明.txt"可能是为了辅助读者安装和使用配套的C语言学习软件,...

    C语言中级培训教程—内存使用

    #### 二、程序设计的本质与内存关系 程序设计的本质在于通过对语句的编排实现对数据的操作。这些数据存储在计算机的内存中,并通过变量名或地址进行访问。因此,了解内存的工作原理和管理方法对于编程至关重要。 #...

    关于C语言教学中内存分析的几点思考.pdf

    在机器代码中,内存地址是透明的,程序员在编程过程中通常不会直接与内存地址打交道,而是使用变量名来操作内存。 3. 内存的分配与释放 内存分配是指在程序编译或运行时,为变量指定一块内存存储单元的过程。分配给...

    C语言指针与其他数据类型的关系

    本文将详细探讨C语言中指针与其他几种基本数据类型(包括变量、数组、字符串、函数和结构体)之间的关系。 #### 指针与变量的关系 ##### 变量的指针 在C语言中,变量的指针指的是该变量在内存中的地址。例如,...

    MIT c语言指针和内存 课程笔记

    1. 指针基础:指针是C语言中的一种特殊变量,存储了内存地址。声明一个指针变量时,我们需要指定其指向的数据类型,如`int *p`表示`p`是一个指向整型变量的指针。 2. 变量与指针:指针可以用来存放变量的地址,通过...

    C语言中文帮助文档

    1. **基础概念**:涵盖C语言的基本元素,如变量、常量、数据类型(整型、浮点型、字符型等)、运算符(算术、关系、逻辑等)以及表达式。 2. **控制结构**:包括条件语句(if...else, switch...case)和循环(for, ...

    浅析C语言中指针与其他数据的关系.pdf

    在赵俊峰撰写的《浅析C语言中指针与其他数据的关系.pdf》中,作者详细地探讨了指针与变量、数组、字符串、函数和结构体之间的关系。 首先,指针是变量的地址,它保存了数据对象在内存中的位置。要获取一个变量的...

    C语言中的函数与指针.pdf

    指针是C语言中一个非常重要的数据类型,它存储了变量的地址信息,使得我们可以直接对内存地址进行操作。 1. 指针变量的定义 定义指针变量的基本语法是:类型标识符 *变量名;其中,变量名前的“*”符号表示这是一个...

    C语言编程从入门到精通

    2. 联合:在相同的内存区域中存储不同类型的变量,根据需要切换使用。 六、预处理器与文件包含 1. 预处理器指令:如#define、include等,用于代码的条件编译和头文件包含。 七、位运算 1. 位运算符:对二进制位...

    C语言内存相关学习笔记

    在C语言中,变量名实际上是与内存地址相对应的标识符。当我们声明一个变量时,编译器会在内存中为其分配相应的空间,并将变量名与该内存地址绑定。 例如: ```c int a; ``` 这条语句表示编译器为`a`分配了一个`...

Global site tag (gtag.js) - Google Analytics