二级C语言第9章指针课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《二级C语言第9章指针课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 指针 课件
- 资源描述:
-
1、第第9 9章章 数组数组第第1部分:部分:一维数组的定义一维数组的定义一维数组在内存中的存放一维数组在内存中的存放一维数组元素的引用一维数组元素的引用一维数组的应用一维数组的应用第第2部分部分二维数组的定义二维数组的定义二维数组的数组名二维数组的数组名二维数组表达式二维数组表达式一维数组的应用一维数组的应用字符数组字符数组1排序问题1.两个数排序?a,bif(a b)t=a;a=b;b=t;2.三个数排序?a,b,cif(a b)t=a;a=b;b=t;if(a c)t=a;a=c;c=t;if(b c)t=b;b=c;c=t;问题导入3.100个数排序?a1,a2,a3,.a100讨论:如何
2、用简单的方法表示变量集合:a1,a2,a3,.a100,不能用省略号!引入一维数组概念。2 数组基本概念:数组基本概念:1.数组:一组具有相同数据的有序集合。2.数组元素:构成数组的成员称为数组单元,即数组元素3.数组维数 数组下标的个数数组数组:有序数据的表示39.1.1 一维数组的定义1、定义一维数组、定义一维数组例如:int a100;包含变量:a0,a1,a2,.a99 char c8;float x20;y4*M+1;(M是符号常量)float s175;类型说明类型说明 数组名数组名exp,数组名数组名exp,其中:exp为常量表达式注意:1.int a10;不能表示为:int a
3、(10);2.数组名定名规则和简单变量名相同;数组名后是用方括弧括起来的常量表达式,决定了数组元素个数;3.3 数组元素的下标从0开始,最大下标值为数组元素个数减1;49.2.2、一维数组元素的引用一维数组元素的引用 数组必须先定义,后引用,C规定只能引用数组 元素,不能一次引用整个数组 数组元素的表示形式为:数组名数组名下标下标 例:int a8;/先声明 a0=a5+a7-a3*2;/后引用下标可以是整型常量或整型表达式,51.在定义数组时对数组元素赋初值例如:int a5=1,2,3,4,5;char c5=,n,a,b,0;2可以只给部分元素赋初值例如:int b5=1,2,3;9.1
4、.3、一维数组的初始化、一维数组的初始化3在对全部数组元素赋初值时,可省略数组长度例如:int c =1,2,3,4,5;4静态数组元素具有自动初始值0例如:static int d5;6例9.1定义30个元素的整型数组,顺序存放1,3,5奇数,先顺序输出,再逆序输出.#include#define M 30main()int sM,i,k=1;for(i=0;i M;i+)si=k;k+=2;for(i=9;iM;i+)printf(%4d,si);if(i+1)%10=0)printf(“n”);79.2 一维数组和指针例:float a10,*p,x;a表示数组的首地址:&a0 a0表示
5、第一个元素 for(k=0;k10;k+)p=a+k;p=&a0;p=a;a=&x;a+;P109:数组名相当于地数组名相当于地址常量址常量,不可重新赋值不可重新赋值!数组名+整数首地址for(p=a,k=0;k10;k+)scanf(“%d”,p);p+;for(p=a,k=0;k10;k+)scanf(“%d”,p+);for(p=a;p-a10;p+)scanf(“%d”,p);89.2 首地址的引用,指针引用一维数组2)数组名表示首地址,a(即a+0)等价于&a0 类似:a+1:&a1 a+i:&aifor(k=0;k10;k+)printf(“%4d”,*(a+k);等价于:for(
6、k=0;k10;k+)printf(“%4d”,ak);3)float a10,*p,k;p=a;for(k=0;k10;k+)printf(“%4d”,*(p+k);9for(p=a,k=0;k10;k+)printf(“%4d”,*p);p+);for(p=a,k=0;k10;k+)printf(“%4d”,*p+);for(p=a,p-a10;p+)printf(“%4d”,*p);4)用带下标的指针变量引用一维数组例:int*p,s10,i;p=s;等价的表达式:(1)si (2)*(s+i)(3)*(p+i)(4)pi 非法:s+;s=p;p=&s s不可变,p可变!109-3 函数
7、与一维数组及元素的引用1.数组元素作实参 2.数组名作实参例9-2 编程,通过一个函数为主函数输入若干大于或等于0的整数,用负数作结束标志;调用另外一个函数输出数组中数据.#include#define M 100int arrin(int*);void arrout(int*,int);main()int sM,k;k=arrin(s);arrout(s,k);void arrout(int*a,int n)int i;for(i=0;i=0)*(a+i)=x;i+;scanf(“%d”,&x);return i;11例9-3 编写函数,把具有10个元素的char类型数组元素中的除前4个外的
8、其他元素变成*.#include#define M 10#define B 4main()char cM=A,B,C,D,E,F,G,H,I,J;setstar(&c4,M-B);arrout(c,M);void arrout(char*a,int n)int i;for(i=0;in;i+)printf(“%c”,ai);printf(“n”);void setstar(char*a,int n)int i;for(i=0;in;i+)*(a+i)=*;void setstar(char*,int);void arrout(char*a,int n);129.4 一维数组的应用举例 p115
9、例9-4 编写函数,定义15个元素的数组,完成以下功能:1)调用C库函数的随机函数给所有元素赋以049的随机数2)输出数组元素值3)按顺序对每隔3个数求一个和数,传回主函数4)最后输出所有求出的和值#include#include“stdlib.h”#define SIZE 15#define N 3void getrand(int*,int);void getave(int*,int*,int);void priarr(int*,int);main()int xSIZE,wSIZE/N=0;getrand(x,SIZE);printf(“Output%d random numbers:n”,
展开阅读全文
![提示](https://www.163wenku.com/images/bang_tan.gif)