内容正文:
课程单元教案
本课编号
20
本课课时
2学时
内容提要
项目7 指针应用
任务1认识指针
任务2变量与指针应用
教学目的
1.了解指针和地址的概念;
2.了解指针变量;
3.初步掌握指针变量定义、功能和用法;
4.指针变量作为函数参数的功能和用法。
知识能力
结构
掌握指针变量定义、功能和用法;
掌握指针变量作为函数参数的功能和用法。
教学重点
难点
重点:指针变量定义、功能和用法;
难点:指针变量作为函数参数的功能和用法。
教学手段
方法
教学方法:任务驱动教学法、启发式
教学手段:课堂讲授法、多媒体教学
思考题与
习题
1.什么是指针和指针变量。
2.输入a和b两个整数,编写函数按先大后小的顺序输出a和b。
教学内容进程设计
任务导入:综合实践7 学生成绩管理系统指针应用设计
任务描述:学生成绩管理系统文指针应用设计:应用指针实现学生成绩信息(包括学号、姓名、5门成绩、总分、平均分等基本信息)的输入、输出及处理。并用指针作为函数形参实现综合实践7中的各项功能。
导入:很多房屋都有门牌号, 门牌号显示的就是房屋的地址,门牌号存放于门牌中,在C语言中也存在这样类似的结构,就是指针,指针形象的就可以称作为地址。
任务1 认识指针
1.1地址和变量地址
1.地址
(1)内存:所有数据量均存储于内存内存空间单位为字节(Byte)每个字节都有一个编号。
(2)地址:内存字节的编号称为地址,任何数据量都对应一个地址。
2.变量地址
(1)变量地址:系统为变量分配的存储空间的首个存储单元的地址称为“变量的地址“。
在内存中分别开辟4个字节存放变量a,1个字节存放变量b,4个字节存放变量c,8个字节存放变量d。
1.2指针
变量的地址称为指针,专门用于存放某种类型的变量的地址符号。因此,指针就是地址。例如,示例中定义的变量,在内存中开辟空间进行存放,每个存储空间都有对应的地址符号。在上图中,定义的变量a,分配4个字节的连续存储空间,地址3013-3016,首地址为3013,那么可以通过这个首地址访问到变量a的值,如果用一个变量把这个首地址保存下来,那么这个变量的类型就是指针类型。
任务2指针变量
2.1指针变量的定义及应用
1.指针变量定义
指针变量的定义格式如下:
类型名 *指针变量名
例如:int *p1;
float *p2;
说明:(1)标识符前面的“*”,表示该变量为指针变量,指针变量名是p1、p2,而不是*p1、*p2。
(2)一个指针变量只能指向同一种类型的变量。
2.指针变量引用
运算符号: &:取地址运算符
*:指针运算符
例如: int a=5,*p;
p=&a; //建立指向关系p指向a的地址
printf(“a=%d,*p=%d
”,a,*p);
举例1:输入两个整型数据,用指针变量访问变量的值。
#include<stdio.h>
main(){
int a,b,*pa,*pb;
printf(“输入两个整数:”);
scanf(“%d%d”,&a,&b);
pa=&a; pb=&b;
printf(“直接访问:a=%d,b=%d
”,a,b);
printf(“间接访问:*pa=%d,*pb=%d
”,*pa,*pb);}
指针变量pa和pb分别和变量a和b建立指向关系,使用*pa和*pb访问到的数据就是变量a和b的值,两者的效果是一样的。
2.2指针变量作为函数参数
函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。
例如:void swap(int *p1,int *p2);
举例2:输入a和b两个整数,编写函数按先大后小的顺序输出a和b(交换指向的变量的值)。
方法1:交换指向的变量的值
void swap(int *p1,int *p2){
int *p;
p=p1; p1=p2; p2=p;}
方法1:交换指向
void swap(int *p1,int *p2){
int p;
p=*p1; *p1=*p2; *p2=p;}
说明:(1)交换指针变量的指向。形参p1和p2的指向交换了,即p1指向变量b的存储空间,p2指向变量a的存储空间,但是对a和b的值没有任何影响。
(2)交换指针变量指向的变量的值。形参指针p1和p2的指向没有发生改变,但是改变了指向的变量的值,即a和b存放的值改变了。因此,从以上两种交换中可以看出,如果要让变量存放的数据发生真正的改变,必须通过交换指向的变量的值进行,交换指向不能实现真正的数据交换。
随堂实训:
1.用指针变量实现学生基本信息的输入和输出(学号、性别和成绩)。
2.编写输入函数和输出函数实现题目1。
教学小结
1.认识指针
1.什么是内存和地址;
2.理解地址和指针概念。
2.变量与指针的应用
1.指针变量定义和引用的方法;
2.指针变量的两个运算符号&和*的使用方法;
3.指针变量作为函数参数的使用方法。
学科网(北京)股份有限公司
$$