模块四 程序设计之复杂数据处理-计算机编程基础(C语言)同步教学(清华大学出版社)
|
99页
|
127人阅读
|
1人下载
普通
内容正文:
模块四 程序设计之复杂数据处理
任务名称 知识点 学习目标
任务一
交换两个变量的值 地址与指针;
指针变量的定义;
指针变量的引用;
指针变量的运算;
指针变量作形参的使用。 指针是C语言的一个重要概念,也是C语言的精华,在程序设计中灵活使用指针不仅使程序简洁、紧凑、高效,还可以借用指针处理复杂的问题。本课题的学习目标是:
1.正确理解地址、指针与指针变量;
2.正确定义指针变量,理解指针指向的含义;
3.能够正确使用指针变量进行简单的程序设计;
4.理解指向数组的指针及指针变量的定义方法;
5.会使用指针引用数组及数组元素;
6.会利用指针处理字符串数据。
任务二
回文诗的生成 指针指向数组;
指针指向数组元素;
通过指针变量引用数组元素;
通过指针变量处理字符串。
学习导表
课题一 指针及指针的运用
生活场景再现
依据对【生活场景再现】的理解,借助于C语言的指针概念,设计一个函数用于将任意两个变量的值进行对调。
▲任务要求
保险柜
保险柜编号
客户
指针及指针的应用
任务一 交换两个变量的值
课题一 指针及指针的运用
▲任务分析
数组名作参数:形参值变化实参值改变,传递的是地址,形参与实参共享的是同一个地址。
任务一 交换两个变量的值
利用函数对调两个变量的值,就像对调两个保险柜内存放的物品,由银行负责对调,你只要确保银行给你的保险柜对应的位置编号(地址)与物品对应就好。
9001
1001
因此,只要将地址内的内容(数据)交换一下,也就间接实现了变量值的对调。
课题一 指针及指针的运用
观察思考1
不同之处:
int i=0;
float i=1.0;
说说这两个变量的定义有什么不同。
(1)变量名相同;
(2)变量类型、变量的值都不同;
(3)存储空间大小及地址也不相同;
课题一 指针及指针的运用
任务一 交换两个变量的值
观察思考1
3.若有以下程序:
//文件名:m4p1t1-ex1-3.cpp
#include <stdio.h>
void main( )
{
int i,*p_i;
float f,sum1,sum2,*p_f;
p_i=&i;
p_f=&f;
scanf("%d,%f",p_i,p_f);
sum1=*p_i+*p_f;
sum2=i+f;
printf("*p_i+*p_f =%.1f
",sum1);
printf("i + f= %.1f
",sum2);
}
试问:
输入12,50↙后,程序的运行结果是什么。
*p_i+*p_f=62.0
i + f =62.0
程序的运行结果:
课题一 指针及指针的运用
任务一 交换两个变量的值
知识准备一:指针与指针变量
一、指针与指针变量
课题一 指针及指针的运用
变量使用特点:“先定义后使用”
内存地址-----编号
1.内存与内存地址
2.变量名、变量的值与变量的地址
如有以下变量定义:
int x=-12;
char ch= 'G';
变量名:x、 ch;
变量值:-12 、'G';
变量地址:0006H、4003H(内存单元 的地址)
任务一 交换两个变量的值
3.指针与指针变量
指针:“内存单元的地址”,也就是某个变量的地址。
指针变量:专门用于保存内存单元地址的变量,即,存放的是变量的地址。
课题一 指针及指针的运用
4.指针变量的定义与赋值
形式1:基类型 * 指针变量名; (仅定义指针变量)
形式2:基类型 * 指针变量名=变量地址; (定义并初始化指针变量)
指针变量定义时的类型与所指变量的类型一致,如果我们将变量的类型称为基类型。
那么指针变量的定义形式如下:
知识准备一:指针与指针变量
任务一 交换两个变量的值
课题一 指针及指针的运用
定义形式 形式1:基类型 * 指针变量名; (仅定义指针变量)
形式2:基类型 * 指针变量名=变量地址; (定义并初始化指针变量)
举例 形式1 int * p1; float * p2; char * p3;
形式2 int x;
int * p1=&x; float y;
float * p2=&y; char z;
char * p3=&z;
含义 指针变量p1是指向int型变量x的指针,其值只能是整型变量的地址; 指针变量p2是指向float型变量y的指针,其值只能是实型变量的地址; 指针变量p3是指向char型变量z的指针,其值只能是字符型变量的地址;
说明 1.定义时,*仅表示p1为指针变量,即变量名称是p1;
2.基类型代表指针变量p1的值是该类型变量的地址;
3.指针变量p1只能存放