- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序教案(第9章)
【教学课题】
指针和指针变量
(第9章 指针,1、2节)
【目的要求】
了解内存单元地址的概念和直接内存访问与间接内存访问的区别,理解指针的概念以及与指针变量的区别,掌握指针变量的定义、初始化及相应的运算。
【教学重点】
指针的概念,指针变量的定义,指针变量的运算
【教学难点】
直接访问与间接访问,指针变量与指针,指针变量的赋值运算和加减法运算
【教学方法】
任务驱动法,问题引导法
【教学手段】
讲授+多媒体演示+学生动手
【作业布置】
1、输入两个整数,求出最大值,要求用函数调用的方法实现,且函数参数为指针变量。
2、输入三个整数,按从小到大的顺序输出。要求用函数调用的方法实现,且函数参数为指针变量。
一、提出任务,引入课题
计算机存储器中保存了那么多数据,系统是如何准确找到所要的数据?
二、分析任务,讲授新课
(一)地址和指针(P139)
1、内存单元的“地址”
计算机所有信息都是以二进制的形式存储在存储器中,同时把8个二进制位规定为一个字节,也就是说存储器在存储信息时通常都是以字节为最小单位进行的,对应的,计算机系统把存储器划分成若干个以字节为单位的小块,这样的存储块通常就是存储信息的最小单元,我们称之为存储单元,为了方便管理存储器中的各个存储单元,给每个存储单元一个编号,我们称之为存储单元的“地址”。内存上的存储单元又叫内存单元。
(图9-1,内存单元之与地址有如房间之与房间号码,邮箱之与邮箱编号)
2、数据在内存中的存储
(我们知道程序的处理对象就是各种各样的数据,这些数据通常先被赋值到相应类型的变量中,然后再对变量进行相应的操作,最终得出期望的结果,所以数据如何存放到内存上的变量空间中,我们有必要了解)
(1)变量的存储空间:程序中定义了变量后,程序在被编译的过程中,系统就为变量分配一定的内存空间(如:int型变量分配4个字节的空间,char型变量分配1个字节的空间);
(2)变量的地址(编号):变量所对应的内存空间的第1个字节的地址即为变量的地址(图9-2所示);
(3)变量地址的作用:
A、具有指向作用(通过地址可以准确找到对应的变量存储空间,从而找到变量中的数据);
B、隐含变量的类型(由地址的跨度可以了解这个变量的类型)
3、内存单元中数据的读取(2种访问形式)
(1)直接访问
直接根据变量的地址找到变量的值。如:printf(“%d”,a);
(如:你找人时知道受访对象的房间号,根据房号直接找到受访人)
(2)间接访问
先在一个位置(通常有存放地址的变量)找到变量的地址,然后根据地址找到相应的变量。如:指针变量的使用。
(如:你找人时不知道受访对象的房间号,只能先找传达室,再从传达式找到房号,最后根据房号找到受访人)
4、指针和指针变量
(1)指针:一个变量的地址称为该变量的指针,简单地说指针就是地址,是一个无符号整数,通过变量的指针即地址就可以找到变量的内存单元;
(2)指针变量:存放指针(地址,实际是一个数值)的变量就叫指针变量。
(3)说明:
A、指针变量有类型之分。指针变量的类型与存在它里面的地址所隐含的类型相同;
B、变量的指针是地址,即一个数值,指针变量是一个变量,用来存放指针(即地址)值的变量。
(二)指针变量(P140)
1、定义指针变量
(指针变量既然是变量,同样遵守变量的规则,即先定义后使用)
(1)定义格式:
数据类型 *指针变量名1[,*指针变量名2……]
(2)举例:
int *p1,*p2;
float *p3;
char *p4;
(3)说明:
A、数据类型又叫基类型,是指指针变量所能存放地址的类型;
B、“*”是指针变量的定义标识符,只起标识作用,说明定义的变量是指针,并不是变量名的一部分;
C、指针变量名的命名规则遵守C中标识符的命名规则;
D、相同类型的指针变量定义时可以在一个语句里,但在每个指针变量名前都必须加“*”。
2、指针运算符(2个,P141)
(1):取地址运算符
A、格式为:变量名
B、如:a,b[0],
又如:p=a;(表示把变量a的地址放到变量p中,即使p指向变量a)
C、运算符是单目运算符,遵循右结合性,且其后只能是变量或数组元素,不能为表达式或常量。
(2)*:取内容(值)运算符(又指针运算符或间接访问运算符)
A、格式为:*指针变量名。
B、如:int *p,i;
p=i;(此句不能省,否则p没有指向)
*p=1;
C、这里的“*”表示指针所指存储单元的内容,不是乘号,也不是指针变量定义时的指针说明符,它是单目运算符,遵循右结合性。
D、如有语句:int a,*p;p=a;
其中p表示指针变量,*p表示p所指向的变量a。
3、指针变量初始化(P142)
(1)格式:基类型 指针变量名=初始化地址值;
(2)举例:char c;
文档评论(0)