C语言ppt课件第9章.ppt
《C语言ppt课件第9章.ppt》由会员分享,可在线阅读,更多相关《C语言ppt课件第9章.ppt(47页珍藏版)》请在三一办公上搜索。
1、南昌大学计算中心,C语言程序设计,南昌大学计算中心,第9章 数组,数组是指一组相同类型数据的有序集合,由一个统一的数组名标识这一组数据。数组的每一个成员称作数组元素,用下标来标识数组元素在该数组中的位置。,南昌大学计算中心,9.1 一维数组的定义和一维数组元素的引用9.1.1 一维数组的定义类型名 数组名整型常量表达式,;,short a5;,15,67,3,26,98,南昌大学计算中心,9.1.2 一维数组元素的引用 数组名下标表达式如:double x8; 则x0、xj、xi+k均合法。注意:i+k是下标表达式而不是两个下标。说明:1、“下标表达式”可以是任何非负整型数据,取值范围是0(元
2、素个数-1)。 特别强调:在运行C语言程序过程中,系统并不自动检验数组元素的下标是否越界。因此在编写程序时,保证数组下标不越界是十分重要的。,南昌大学计算中心,2、1个数组元素,实质上就是1个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。3、一个数组不能整体引用,数组名中存放的是一个地址常量,它代表整个数组的首地址。例如:double x8, *p, q; p=x; q=x;,南昌大学计算中心,9.1.3 一维数组的初始化1、在定义语句中给所定义数组赋初值数据类型 数组名常量表达式初值表说明:1、初值放在赋值号后的花括号中,数值类型与说明类型一致,初值间用逗号隔开,
3、系统将自动按顺序从第一个元素开始依次给数组中元素赋值。如:int a8=0,1,2,3,4,5,6,7;2、“初值表”中的初值个数,可以少于元素个数,即允许只给前面的部分元素赋初值,其后的元素自动赋0。字符补0。如:int a10=0; /* 10个元素都赋初值0 */ char c5=; /* 后4个元素均赋0 */,南昌大学计算中心,3、当初值多于元素个数,编译时会出错。4、如果对数组的全部元素赋以初值,定义时可以不指定数组长度(长度由初值个数自动确定)。如果被定义数组的长度,与初值个数不同,则数组长度不能省略。如:int a=0,1,2,3,4;,南昌大学计算中心,#include ma
4、in() int ary10; int i, total, high; for(i=0; i high) high = aryi; for(i=0,total=0; i10; i+) total = total + aryi; ,定义,赋值,比较,南昌大学计算中心,9.2 一维数组和指针9.2.1 一维数组和数组元素的地址数组是一组相同类型数据的集合,数组中各个元素在内存占据连续的存储单元,每个内存单元都有相应的地址。数组所占内存单元的首地址称为数组的指针,数组元素所占内存单元的首地址称为数组元素的指针。因此,可以用指针变量来指向数组或数组元素。,南昌大学计算中心,C语言规定,数组名代表数组的
5、首地址,因此,数组名实际上也是指针,但它是一个固定不变的指针常量。如:int a5;a是数组名,也是指针,它永远指向数组的首地址,即不能将新地址赋给该指针。但可以通过形如a+k的形式(k是整数)来表达该数组其它元素的地址。如:for(k=0;k5;k+) scanf(“%d”,a+k);,南昌大学计算中心,若有语句: int a10; int *p; p=a; 则: for(k=0;k10;k+) scanf(“%d”,a+k);,for(k=0;k10;k+) scanf(“%d”,p);p+;,for(k=0;k10;k+) scanf(“%d”, p+);,for( ;p-a10;p+)
6、 scanf(“%d”,p);,南昌大学计算中心,数组和指针的关系,南昌大学计算中心,9.2.2 通过数组的首地址引用数组元素采用间接运算符“*”。如:,南昌大学计算中心,for(k=0;k10;k+) printf(“%4d”,ak);,for(k=0;k10;k+) printf(“%4d”,*(a+k);,南昌大学计算中心,9.2.3 通过指针引用一维数组元素若有语句: int a10, *p,k; p=a;,for(k=0;k10;k+) printf(“%4d”,ak);,for(k=0;k10;k+) printf(“%4d”, *(p+k);,for( k=0;k10;k+) p
7、rintf(“%4d”,*p);p+;,for( k=0;k10;k+) printf(“%4d”,*p+);,for( ;p-a10;p+) printf(“%4d”,*p);,南昌大学计算中心,9.2.4 用带下标的指针变量引用一维数组元素若有语句: int s10, *p,i; p=s;,南昌大学计算中心,练习:有如下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为9的表达式是_。*p+9*(p+8) *p+=9 p+8,南昌大学计算中心,练习:下面程序执行后的输出结果是_。#include int a=2,4,6,8;main() int i; int
8、 *p=a; for(i=0;i4;i+) ai=*p; printf(“%dn”,a2);6 B) 8 C) 4 D) 2,南昌大学计算中心,练习:设有定义语句:int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是_。for(i=0;i6;i+) printf(“%2d”,*(p+);for(i=0;i6;i+) printf(“%2d”,*(p+i);for(i=0;i6;i+) printf(“%2d”,*p+);for(i=0;i6;i+) printf(“%2d”,(*p)+);,南昌大学计算中心,练习:下面程序执行后的输出结果
9、是_。#include int a=2,4,6,8;main() int i; int *p=a; for(i=0;i4;i+) ai=*p+; printf(“%dn”,a2);6 B) 8 C) 4 D) 2,南昌大学计算中心,练习:下面程序执行后的输出结果是_。main() int a10=1,2,3,4,5,6,7,8,9,10,*p=a; printf(“%dn”,*(p+2);3 B) 4 C) 1 D) 2,南昌大学计算中心,练习:有如下程序段:int a10=1,2,3,4,5,6,7,8,9,10;int *p=则b的值是_。5 B) 6 C) 9 D) 8,南昌大学计算中心
10、,练习:下面程序执行后的输出结果是_。main() int a5=2,4,6,8,10,*p,*k; p=a; k=4 B) 22 C) 24 D) 46,南昌大学计算中心,练习:下面程序执行后的输出结果是_。main() int a=1,2,3,4,5,6,7,8,9,10,11,12; int *p=a+5; *q=NULL; *q=*(p+5); printf(“%d %dn”,*p,*q);运行后报错 6 66 12 5 5,南昌大学计算中心,9.3 函数之间对一维数组和数组元素的引用9.3.1 数组元素作实参数组元素作实参时,对应的形参必须是类型相同的变量,所以用法与普通变量一致,传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 ppt 课件
链接地址:https://www.31ppt.com/p-1375709.html