收藏 分享(赏)

指针-3.doc

上传人:HR专家 文档编号:5925460 上传时间:2019-03-21 格式:DOC 页数:5 大小:63KB
下载 相关 举报
指针-3.doc_第1页
第1页 / 共5页
指针-3.doc_第2页
第2页 / 共5页
指针-3.doc_第3页
第3页 / 共5页
指针-3.doc_第4页
第4页 / 共5页
指针-3.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、教案首页(以 2课时为单元)课 序 授课日期 授课班次 授课教师 批准人22课 题 第 8 章 指针第 57 节授课教材 C 语言程序设计 ,魏燕明 编著 北京出版社目的要求掌握指针数组的定义及使用了解用指针方法操作二维数组理解动态的二维数组了解并掌握用指向数组的指针操作二维数组了解命令行参数的使用教学内容指针数组指针与二维数组命令行参数重点难点重点:指针数组的概念指针方法操作二维数组难点:用指向数组的指针操作二维数组教学方法手 段讲授法授课教学步骤 1.复习 2.讲课 3.小结 4.布置作业复 习提 问 题 8.21作业题目 8.9 8.10 预习内容 第八章 指针 上机编程预习、准备课时分

2、配(以分钟计算)教学环节 复习提问 新课讲解 课堂讨论 每课小结 布置作业时间分配 3 92 0 3 2第八章 指针五、指针数组1.概念 数组的每个元素都是指针类型,即为指针数组。2. 定义和使用定义形式:数据类型 *指针数组名n;例:说明下列程序的运行结果#include “stdio.h“void main() int i;int a=1,2,3,4;int b=3,4,5,6;int c=6,7,8,9;int *data3;data0=a;data1=b+1;data2=c+2;for(i=0;i3;i+)printf(“%2d “,*(data+i);运行结果为: 1 4 8说明:d

3、ata 是指针数组,每个元素指向一维数组的元素。注意:a、b+1、c+2 都是以及指针。*(data+i)是 data数组的第 i个元素的值,是指向整数的指针,*(data+i)是整数的内容。六、指针与二维数组1. 用指针方法操作二维数组有一维数组 xk,数组名 x代表其首地址(x0的地址),x+1即 x1的地址,x+i 即 xi的地址。*(x+i)就是 xi的值。有二维数组 xmn,数组名 x的值等于 x00的地址值。注意这里 x并不指向 x00)。x0指向 x00,x1指向 x10,xi指向 xi0,同理:x0+1 指向 x01, xi+j指向xij,因此*(xi+j)就是 xij的值。由

4、上面两段结论可以得出:*(*(x+i)+j)就是 xij的值,即*(x+i)+j 指向 xij。由此可得结论:xij的地址是:*(x+i)+j。2.动态的二维数组若希望二维数组的列长度和行长度可以变化,需要建立一个动态的二维数组。生成一个行数和列数都可变化的二维数组,要做的工作有: 为二级指针申请一个指针数组float *xd;xd=(float *)malloc(2*sizeof(float *); 为指针数组的元素赋值x0=(float *)malloc(3*sizeof(float);x1=(float *)malloc(3*sizeof(float);或*(x)=(float *)ma

5、lloc(3*sizeof(float);*(x+1)=(float *)malloc(3*sizeof(float);3. 用指向数组的指针操作二维数组指向数组的指针定义形式:类型 (*指针变量名)n;例如:int (*x)3;注意与 int *y3;的区别。后者是指针数组,即 y数组指针。y首先是个数组,其内容是指针。所以 y3包含三个指针变量。而前者 int (*x)3;说明 x首先是指针,指向一个具有三个整型数据元素的一维数组。定义:int a23,(*x)3;x=a;含义:x 为指针,指向二维数组 a 的首地址。即 x 指向 a0,x+1 指向 a1,x+i指向 ai。*(x+i)等

6、于 ai,*(x+i)+j 就是指向aij,即 aij的地址。于是*(*(x+i)+j)就是 aij的内容。例:用指向数组的指针方法输入一个二维数组,并输出。#include “stdio.h“void main()int a23,(*x)3,i,j;/*或定义:int a6,(*x)3,i,j;*/x=a;printf(“nPlease input 23 integers:“);for(i=0;i2;i+)for(j=0;j3;j+)scanf(“%d“,*(x+i)+j);putchar(n); for(i=0;i2;i+)for(j=0;j3;j+)printf(“ %d“,*(*(x+i)+j);printf(“n“); 七、命令行参数如果使用有命令行参数的命令方式执行程序,则必须在源程序的main函数中加上参数。主函数的首部应该这样写:void main(int argc,char *argv);argc的类型是整数,其数值表示了命令行参数的个数;argv 是指向字符型的指针数组,数组元素按照命令的输入顺序指向命令行参数的各个字符。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报