C语言和其他高级语言的区别

发布 2021-04-23 11:22:28 阅读 9237

提到c语言,我们知道c语言和其他高级语言的最大的区别就是c语言是要操作内存的!

我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。

内存的使用是程序设计中需要考虑的重要因素之一,这不仅由于系统内存是有限的(尤其在嵌入式系统中),而且内存分配也会直接影响到程序的效率。因此,我们要对c语言中的内存管理,有个系统的了解。

在c语言中,定义了4个内存区间:**区;全局变量和静态变量区;局部变量区即栈区;动态存储区,即堆区;具体如下:

1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

2、堆区(heap) —一般由程序员分配释放, 若程序员不释放,程序结束时可能由os** 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。

3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 -程序结束后由系统释放。

4、常量区 —常量字符串就是放在这里的。 程序结束后由系统释放。

5、程序**区—存放函数体的二进制**。

我们来看张图:

首先我们要知道,源**编译成程序,程序是放在硬盘上的,而非内存里!只有执行时才会被调用到内存中!

我们来看看程序结构,elf是是linux的主要可执行文件格式。elf文件由4部分组成,分别是elf头(elf header)、程序头表(program header table)、节(section)和节头表(section header table)。具体如下:

1、program header描述的是一个段在文件中的位置、大小以及它被放进内存后所在的位置和大小。即要加载的信息;

作业,高级语言,c语言

类型 sizeof 数组下标圆括号成员选择 对象 成员选择 指针 除乘余数 取模 数组名 常量表达式 表达式 函数名 形参。对象。成员名对象指针 成员名。表达式 数据类型 表达式 变量名 变量名 变量名 变量名 指针变量 变量名!表达式 表达式sizeof 表达式 表达式 表达式表达式 表达式整型表...

高级语言C

第一章概述。程序 用某种计算机能够理解并执行的计算机语言描述解决问题的方法步骤。机器语言 采用计算机直接识别和执行的二进制 来表示的程序设计语言。汇编语言 采用文字方式表示的程序设计语言,其中大部分指令和机器语言中指令十一一对应的。高级语言 是描述算法过程方便 同时脱离了对机型的要求,能在任何计算机...

c语言高级编程

c高级编程 责任编辑 admin 更新日期 2005 8 6 深入了解c语言 函数的参数传递和函数使用参数的方法 tangl 99 原作 关键字 c语言,汇编,生成,编译器 c语言生成的 在执行效率上比其它高级语言都高。现在让我们来看看c语言生成的 具体是什么样子的。当你看完本文对于c语言的了解一定...