C语言高级编程第五课.pdf

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言高级编程第五课

高质量C语言编程 3 Sept. 2008 © Neusoft Confidential 第五章:数组 目标: 1)明确数组的五大特点 2 )掌握创建和初始化数组的方法 时间:5学时 3 )了解数组和指针间的关系 教学方法:PPT+练习 4 )独立完成数组相关练习 5.1 使用数组的意义 为何要使用数组? 如果没有数组,想想编程大路上的坎途吧。 计算一个班级的平均身高。( 比如有50人) 命名问题 求和问题(漏加、繁琐……) 5.2 什么是数组 数组是内存中连续存储的有相同类型的数据的有序 集合,是一种构造类型。 定义方式: 数组元素的类型 类型 数组名[元素个数]; 1 2 3 这里元素个数可以是整型常量或整型常量表达式 可以是变量吗? 不可以 5.2 什么是数组 int a[10]; //此时[]是数组定义符。 a[1] = 1; //此时[]下标运算符。 另,不要认为a[i]代表数组元素的值,它代表数组 元素本身,可作为左值使用。 数组定义时,方括号中常量表示数组元素的个数。 C语言中访问数组时规定数组的下标从0开始。 5.3 数组的初始化 完全初始化: int a[10] = {0,1,2,3,5,6,7,8,9}; 部分初始化: int b[10] = {8,1}; 默认初始化: int c[] = {1,2,3,4};//系统根据初值个数确定数组长度 char a1[10]= {a,b,c,d}; char a2[3] = {a,b,c,d}; // 出错! char a3[ ] = {a,b,c,d}; char a4[ ] = abcd; 5.4 数组的特点 存储空间连续; 元素之间有序; 元素类型相同; 元素个数固定;(除了在堆上分配) 数组元素无名; 例:int a[10]; 1、a代表了数组的首地址,它具有特定的类型! 那么sizeof(a)应该是? int [10] 2、数组名代表数组首地址,一定是个常量。 那么a++? 5.5 访问数组元素 对变量的访问方式有几种? 直接访问—— 用变量名访问。 间接访问—— 用地址、指针访问。 int i=10; int*p = i ;*p=2; int a [10]={0} ; a[2] = 32; //属于哪种访问方式? 注意:间接访问,使用地址访问! 首地址+ 偏移 偏移 下标值* sizeof(数组元素类型) * (首地址+ 偏移)间址运算符*,用地址访问元素 5.5 访问数组元素 *(首址+ 偏移)是对数组元素进行访问的本质,但不 是唯一的书写方式。 奇怪的写法: int a[10] = {1,2,3,4,}; 2[a] = 10; char ch = 5[ Neusoft ]; 记住:a[ i ] *(a + i* sizeof(数组元素类型) ) 5.5 访问数组元素 C语言规定数组不能以整体形式参与数据处理,只能 逐个使用数组元素。 int a[3] = {1,2,3}; int b[3] ; b = a; 只读访问数组: 例如:const int month[12] = {31,28,31}; 这是只读数组,在程序运行时不能修改数据。 5.5 访问数组元素 下面程序将打印什么结果? #include stdio.h #define TRUE 1 int main(void) { int ref[]={8,4,0,2}; int *ptr; int index; for(in

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档