- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 第6章 数据与指针 前面讲述的字符型(char)、整型(int)和浮点型(float)等 数据,都属于基本数据类型。C语言还提供了一些扩 展的数据类型。它们是对基本数据类型的扩展,称之 为构造数据类型。这些按一定规则构成的数据类型有: 数组、结构、指针、共用体和枚举等。 6.1 数 组 C语言具有使用户能够定义一组有序数据项的能力。这组有序的 数据即数组。数组是一组具有固定数目和相同类型成分分量的有 序集合。其成分分量的类型为该数组的基本类型。如整型变量的 有序集合称为整型数组,字符型变量的有序集合称为字符型数组。 这些整型或字符型变量是各自所属数组的成分分量,称为数组元 素。 构成一个数组的各元素必须是同一类型的变量,而不允许在同一 数组中出现不同类型的变量。 数组数据是用同一个名字的不同下标访问的,数组的下标放在 方括号中,是从0开始(0,1,2,3,…,n)的一组有序整数。 例如数组a[i],当i=0,1,2,…,n时,a[0],a[1],…,a[n] 分别是数组a[i]的元素(或成员)。数组有一维、二维、三维和 多维数组之分。常用的有一维、二维数组和字符数组。 6.1.1 一维数组 1.一维数组的定义方式 类型说明符 数组名[整型表达式] 2.数组的初始化 数组中的值,可以在程序运行期间,用循环和键盘输入语句 进行赋值。但这样做将耗费许多机器运行时间,对大型数组而 言,这种情况更加突出。对此可以用数组初始化的方法加以解 决。 所谓数组初始化,就是在定义说明数组的同时,给数组赋新 值。这项工作是在程序的编译完成的。 对数组的初始化可用以下方法实现。 ① 在定义数组时对数组的全部元素赋予初值。 ② 只对数组的部分元素初始化。 ③在定义数组时,若不对数组的全部元素赋初值,则数组的 全部元素被缺省地赋值为0。 6.1.2 二维数组 1.二维数组定义的一般形式 类型说明符 数组名[常量表达式][常量表达式] 2.二维数组的初始 (1) 对数组的全部元素赋初值 可以用下面两种方法对数组的全部元素赋初值。 ①分行给二维数组的全部元素赋初值。 ②也可以将所有数据写在一个花括号内, 按数组的排列顺序对各元素赋初值。 (2) 数组中部分元素赋初值 6.1.3 字符数组 基本类型为字符类型的数组称为字符数组。显然,字符数组 是用来存放字符的。在字符数组中,一个元素存放一个字符, 所以可以用字符数组来存储长度不同的字符串。 字符数组的定义 字符数组的定义与数组定义的方法类似。 字符数组置初值 字符数组置初值的最直接的方法是将各字符逐个赋给数组中的 各个元素。 C语言还允许用字符串直接给字符数组置初值。其方法有以下 两种形式: 用双引号 括起来的一串字符,称为字符串常量 用单引号 括起来的字符为字符的ASCII码值,而不是字符串。 6.1.4 查 表 6.1.5 数组与存储空间 使用查表法(如有必要再加上线性插值法)将比采用复杂 的曲线拟合所需要的数学方法有效得多,因为表格查找 执行起来速度更快,所用代码较少。表可以事计算好后 装入EPRO M中,使用内插法可以增加查表值的精度, 减少表的长度。 当程序中设定了一个数组时,C编译器就会在系统的存储空间中 开辟一个区域,用于存放该数组的内容。数组就包含在这个由连 续存储单元组成的模块的存储体内。对字符数组而 言,占据了内存中一串连续的字节位置。 6.2 指 针 指针是C语言中的一个重要概念,也是C语言的重 要特色之一。C语言区别于其他高级程序设计语言 的主要特点,就是它在处理指针时所表现出的能力 和灵活性C使用指针可以有效地表示复杂的数据结 构;有效而方便地使用数组;动态地分配存储器, 直接处理内存地址;在调用函数时还能输入或返回 多于1个的变量值:可以使程序简洁、紧凑、高效。 可以说,不掌握指针就没有掌握C语言的精华。 6.2.1 指针的基本概念 一旦程序中定义了一个变量,C编译器在编译时就给 这个变量在内存中分配相应的内存空间。通常C语言 系统对一个整型(int)变量分配2字节内存单元;对一个 字符(char)型变量分配1字节内存单元;对一个浮点型 (float)变量分配4字节内存单元。 对于变量要弄清两个概念,一个是变量名,一个是 变量值。前者是一个数据的标号,后者是一个数据的 内容。 对于内存单元,也要弄清两个概念,一个是内存单 元的地址,一个是内存单元的内容。前者是内存对该 单元的编号,表示该单元在整个内存中的位置。后者 指的是在该内存单元中存放着的数据。 在变量与内存单元的对应关系中,变量的变量名与内 存单元的地址相对应;变量的变量值与内
文档评论(0)