2022年荆州职业技术学院C语言程序设计课程教案 .pdf

上传人:H****o 文档编号:25539578 上传时间:2022-07-12 格式:PDF 页数:6 大小:114.54KB
返回 下载 相关 举报
2022年荆州职业技术学院C语言程序设计课程教案 .pdf_第1页
第1页 / 共6页
2022年荆州职业技术学院C语言程序设计课程教案 .pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《2022年荆州职业技术学院C语言程序设计课程教案 .pdf》由会员分享,可在线阅读,更多相关《2022年荆州职业技术学院C语言程序设计课程教案 .pdf(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、名师精编精品教案荆 州 职 业 技 术 学 院 C 语言程序设计课 程 教 案教 学 课 题数组的指针和指向数组的指针变量学 时2 教学目的了解数组的指针和指向数组的指针变量教材分析重点数组的指针和指向数组的指针变量难点数组的指针和指向数组的指针变量教学方法讲授教学手段课件讲解教学过程及时间分配1. 数组的指针和数组元素的指针变量(25 分钟) 2. 利用指针变量引用数组元素(35 分钟) 3. 指向多维数组的指针和指针变量(25 分钟) 4. 小节(5 分钟)荆 州 职 业 技 术 学 院信 息 技 术 系软 件 教 研 室精选学习资料 - - - - - - - - - 名师归纳总结 -

2、- - - - - -第 1 页,共 6 页名师精编精品教案9.3 数组的指针和指向数组的指针变量指针和数组有着特殊的关系。一个数组在内存中占据连续的内存单元。数组名为此连续内存单元的首地址。一个数组元素也可以占据几个连续的内存单元( 取决于数组元素的数据类型 )。一个数组元素的首地址也是指它所占有的几个内存单元的首地址。9.3.1 数组的指针和数组元素的指针变量不带方括号的数组名就是该数组的指针,它指向其第1 个元素。int data5;data 就是第 1 个数组元素的地址。但必须注意,数组名是常量,因此,对数组名不能当作指针变量使用。例如:像data、 &data 和 data &a之类

3、的表达式都是非法的。int data5,*p_data ;p_data data ;这种赋值方式等价于:p_data &data0;9.3.2 利用指针变量引用数组元素在程序中通过下标引用数组元素,经过C 编译之后,下标值的计算就变为“基址位移”的计算, 而引用元素的值就变为间接存取对应单元的内容。 data0 就等价于 *(data0) ,data1就等价于 * (data 1) ,。int *pdata ;p 的值就表示数组data 的基址,而(pi )实现“基址位移”的运算,其值恰好是数组 data 第i个元素的地址,即&datai。精选学习资料 - - - - - - - - - 名师

4、归纳总结 - - - - - - -第 2 页,共 6 页名师精编精品教案例如 : 输出数组的全部元素。有三种方法 : 下标法。main() int a10,i; for(i=0;i10;i+) scanf(“%d ”,&ai); printf(“n ”); for(i=0;i10;i+) printf(“%d ”,ai); 通过数组名计算数组元素的地址, 找出元素的值。main() int a10,i; for(i=0;i10;i+) scanf(“%d ”,&ai); printf(“n ”); for(i=0;i10;i+) printf(“%d ”,*(a+i); 用指针变量指向数组元

5、素。main() int a10,i,*p; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 6 页名师精编精品教案 for(i=0;i10;i+) scanf(“%d ”,&ai); printf(“n ”); for(p=a;p(a+10);p+) printf(“%d ”,*p);9.3.3 指向多维数组的指针和指针变量1 . 多维数组的地址表示不管内存空间多大,内存单元的地址都是一维的。在 C语言中, 数组不管是一维的还是多维的,都占用一片连续的内存空间。static int num431 ,3,5 ,2 ,4,6 ,13 ,1

6、6,19 , 8,18,28 ;如下图所示, 可以把数组num看成是“一维数组”,它包含 4 个元素, 各代表数组的一行;上述每个元素又是一个一维数组,各包含3 个元素, 即 3 个列元素,每个列元素是一个整数。数组名总是代表整个数组的起始地址,即:该数组第1 个元素的地址。num i 就代表第i行的首地址,也就是numi 的地址(注意:不是numi 本身) 。num0 、num1 、num2 和 num3 就分别是num数组的第0 行数组名、 第 1 行数组名、第 2 行数组名和第3 行数组名, 从而它们就分别代表各个“行数组”的首地址,亦即各行第0 列元素的地址。numi j 就表示该行数

7、组第j列元素的地址。2. 指向基本数组元素的指针变量利用指向数组元素的指针变量访问二维数组的各个元素,并按逆序输出各元素的值。#include void main() int a1010,i ,j ,*p,n; for( i0;i 10;i ) for( j0;j 10;j ) *(*(ai ) j) i*10 j ; n0; for( p&a99;p&a00; p) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 6 页名师精编精品教案 printf( 5d,*p ) ; if(n 100) printf(n); 数组元素 aij相对

8、数组a起始地址的位移量是:i*10j。其中,i表示行数,j表示列数,而10 表示a数组每行有10 列。如果我们设立一个指针变量p,使它指向数组a 的头一个元素( 即 a00): p &a00;那么访问 a45就可采用间接取内容的方式:*(p (4*10 5) *(p 45) 3. 指向行数组的指针变量指向二维数组中行数组的指针变量的一般定义形式是:类型名(*变量名) N ;变量名是指针变量的名称,N是定义数组大小的常量,类型名是表示数组的类型。在定义和使用指向行数组的指针变量时应注意以下几点: 在定义时必须用一对圆括号把“* ”和指针变量名括起来。 如果见到以下形式的定义:int *p, (*

9、pp)10;应注意:指针变量p和pp的含义及功能是不同的。p a00;或者 pa0 ;但不能执行下面的赋值语句: pa;a表示二维数组的首地址,也就是其第0 行的首地址,而不是代表第0 行第 0 列元素的地址。尽管二者在数值上是一样的,但具有不同的物理含义,不能混为一谈。ppa;pp就指向a的第 0 行。若要访问第i行第j列元素,还得再间接访问一次: *(* (ppi ) j )例如 : 利用指向行数组的指针变量重写前面的程序。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 6 页名师精编精品教案#include void main() int a1010,i ,j ,*p; int (*pp ) 10; ppa;for( i0;i 10;i ) for( j0;j 10;j ) *(*pp j ) i*10 j ; pp ; for(p *pp 1;pa0 ; p ) printf( 5d,*p ) ; if( pa0 ) 10 0 ) printf( n); 小节: 掌握数组的指针和数组元素的指针变量的应用, 掌握利用指针变量引用数组元素, 理解指向多维数组的指针和指针变量的应用。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 6 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com