面向过程的程序设计

面向过程的程序设计

ID:46635081

大小:554.50 KB

页数:42页

时间:2019-11-26

面向过程的程序设计_第1页
面向过程的程序设计_第2页
面向过程的程序设计_第3页
面向过程的程序设计_第4页
面向过程的程序设计_第5页
资源描述:

《面向过程的程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章面向过程的程序设计学习目标理解程序概念理解类型和变量了解面向过程的程序设计方法用C语言进行程序设计初步知识什么是程序?程序是由一系列代码组成的什么是代码呢?就像报纸是通过文字组成自己的一样,代码可以组成程序。代码是人们约定的一系列符号,通过这些符号的排列组合就形成程序。代码是程序员容易理解的计算指令表现形式,提供这些代码约定的工具程序就是计算机语言。代码的组织单元是函数程序是可以通过计算机执行的实体代码可以被编译,链接,产生计算机可以认识的可执行的程序,程序执行时将加载到计算的内存空间,将自己的第一条代码指令的地址交给CPU执行。严格讲计算机可以识别的机器

2、代码组成的程序,才是程序。另一种处理代码的手段是解释执行。源代码可以不必一次性编译生成可执行程序,它可以通过另一个程序一边解释一边执行。即解释执行。程序在执行所需内存空间代码内存空间CPU执行每一条指令,必须事先将指令装入内存空间。以便于CPU能即时读到指令。这种内存空间我们称为代码内存空间临时内存空间CPU执行程序时还需要临时内存空间,比如执行两个数据的加法,这种数据需求事先存放在内存空间。程序是如何管理自己的临时内存空间呢?是通过类型来管理的进程我们将上述程序执行时所需要的内存空间等其它资源统称为该程序的进程,进程是程序执行时的动态表现形式。是程序执行时所必

3、须具备的资源集合。进程内存分区1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放(malloc,free),若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。-程序结束后由系统释放4、文字常量区—常量字符串就是放在这里的。程序结束后由系

4、统释放5、程序代码区—存放函数体的二进制代码。最容易发生错误的常量区常量区主要存放字符串常量.常量区的内存是只可读型的,学习的初期经常拿他来写入数据,运行后会立即发生错误.char*s="fasef";chara[10]="fasef";以上两句,指针s和数组a在栈区,s占4个字节,因为是指针类型变量。a占10个字节,因为是10个char型变量数组。“fasef”存放在静态区的常量区,占6个字节,因为是字符串。“fasef”可以作为字符串的首地址。明确了以上关系,我们可以看到s指针被赋值,实际上是指向了常量区的“fasef”。数组就不同,它是用自己的栈区空间存放

5、了“fasef”,一共6个字节。最容易发生错误的常量区1.a[i]='*';/*为什么能给它赋值*/因为数组a自身在栈区有自己空间可以赋值,这是数组的特性。2.s[i]=‘*’;/*不能给它赋值*/因为s是指针,没有分配空间,不可以这样赋值。s指针指向一个地址。申请空间就是给s一个空间的地址,这个空间可以用来存放数据。也可给s一个常量的地址,它就指向常量。但是,我们知道字符串常量是不可以改变的,所以这样就错了。3.char*s=“fassd”;*(s+2)=‘A’;这样肯定不行,会造成内存错误。s没有申请空间,如何下移赋值!内存空间操作系统为每个程序进程赋予4G

6、的内存空间,程序的代码、常量、变量、程序引用的其他模块,都在这4G的内存空间进行分配。(0x00000000-0x0000FFFF),64K空间,用于NULL指针分配.(0x00010000-0x7FFEFFFF),2147352576(约2G)空间,属于进程私有(0x7FFF0000-0x7FFFFFFF),64K空间,用于指针分配(不可访问)(0x80000000-0xFFFFFFFF),2G空间,用于操作系统,不可访问内存空间#include"stdio.h"#defineMAX_COUNT1000constintCONST_VALUE=30;double

7、g_fValue;intmain(intargc,char*argv[]){constintMAX_VALUE=120;intiValue;iValue=MAX_VALUE;return0;}内存空间第一条指令#include,是一条宏指令,专门供编译器的预处理程序来处理的指令称宏指令。该指令引入了一个C语言所定义的一个头文件stdio.h,该文件定义了C语言用于标准输入输出所需要的函数。第二条指令#defineMAX_COUNT1000是一条宏指令,让编译知道MAX_COUNT的含义表示1000,以后在代码中出现标识标MAX_COUNT时编译器就知道是1000

8、,并将其替换。这样做方便

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。