C语言程序设计辅 导8.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计 第八讲 一、对 C语言的深入讨论 1、对函数的讨论 函数的参数 函数的递归调用 2、标识符的作用域 3、函数的存储分类 4、编译预处理 5、动态存储分配 1命令行参数 命令行:在操作系统状态下,为执行某个程序而键入的一行字符 命令行一般形式:命令名 参数1 参数2………参数n 函数的递归调用 3个条件: (1)问题转化 (2)利用转化过程解决问题 (3)必须有明确的结束条件 例: fun (int x) { if(x/20) fun(x/2); printf(“%d”,x); } Main() {fun(6);} 2 变量的存储属性 概述 变量是对程序中数据的存储空间的抽象 局部变量与全局变量 局部变量---内部变量 定义:在函数内定义,只在本函数内有效 说明: main中定义的变量只在main中有效 不同函数中同名变量,占不同内存单元 形参属于局部变量 可定义在复合语句中有效的变量 局部变量可用存储类型:auto register static (默认为auto) 全局变量---外部变量 定义:在函数外定义,可为本文件所有函数共用 有效范围:从定义变量的位置开始到本源文件结束,及有extern说明的其它源文件 动态变量与静态变量 存储方式 静态存储:程序运行期间分配固定存储空间 动态存储:程序运行期间根据需要动态分配存储空间 内存用户区 变量存储类型 4 编译预处理 作用:对源程序编译之前做一些处理,生成扩展C源程序 种类 宏定义 #define 文件包含 #include 条件编译 #if--#else--#endif等 格式: “#”开头 占单独书写行 语句尾不加分号 4.1 宏定义 不带参数宏定义 一般形式: #define 宏名 [宏体] 功能:用指定标识符(宏名)代替字符序列(宏体) 带参数宏定义 一般形式: #define 宏名(参数表) 宏体 带参的宏与函数区别 08/9 26以下关于宏的叙述中正确的是 ( ) A)宏名必须用大写字母表示 B) 宏定义必须位于源程序中所有语句之前 C) 宏替换没有数据类型限制 D)宏调用比函数调用耗费时间 08/4(28)以下叙述中错误的是( )。 A)在程序中凡是以“#”开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX 是合法的宏定义命令行 D)C 程序对预处理命令行的处理是在程序执行的过程中进行的 43)若程序中有宏定义行:#define N 100,则下列叙述中正确的是( )。 A)宏定义行中定义了标识符N 的值为整数100 B)在编译程序对C 源程序进行预处理时用100 替换标识符N C)对C 源程序进行编译时用100 替换标识符N D)在运行时用100 替换标识符N 4.2 文件包含 功能:一个源文件可将另一个源文件的内容全部包含进来 一般形式: #include “文件名” 或 #include 文件名 被包含文件内容 源文件(*.c) 头文件(*.h) 动态存储 链表的特点 链表是一种动态的进行存储分配的数据结构,程序执行中,可以在需要时开辟存储单元,在不需要时释放存储单元。 链表的结点包含数据域和链接域,数据域用来保存数据信息,链接域用来保存该结点的后继结点或前驱结点的地址。 一个链表用一个头指针来保存该链表的首地址,即第一个结点的地址。头指针是一个链表的标志。 一个单链表的逻辑示意图 创建链表 相关函数: malloc函数 原型:void *malloc(unsigned int size); 功能:在内存的动态存储区中分配size个字节的连续空间,它的返回值是所分配的那一段空间的起始地址,若分配失败,则返回一个空指针(0)。 calloc函数 原型:void *calloc(unsigned int n,unsigned int size); 功能:内存的动态存储区中分配n个长度为size个字节的连续空间,它的返回值是指向所分配空间的起始地址,若分配失败,则返回一个空指针(0)。 free函数 原型:void free(void *p); 功能:释放p所指向的内存区,该函数没有返回值。一般p是调用malloc函数或calloc函数的返回值。 第十三章 结构体与共用体 13.1 结构体 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据类型 结构体类型定义 13.2 结构体变量的定义 先定义结构体类型,再定义结构体变量 一般形式: 定义结构体类型的同时定义结构

文档评论(0)

飞扬的岁月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档