变量的指针与指针变量_第1页
变量的指针与指针变量_第2页
变量的指针与指针变量_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课题第十章变量的指针与指针变量教学1、了解指针与地址的概念目的2、掌握指针变量的疋义、引用及指针变量作为参数教材教学重点指针变量的疋义、引用及指针变量作为参数分析教学难点指针变量作为参数课时安排2教学方法讲授与演示法相结合一、讲授新课)地址与指针的概念一)变里的扌曰针与扌曰针变里变量的指针就是变量的地址。指针变量是种特殊类型的变量,1、指针变量的定义它是用于专门存放地址的。教定义形式:基类型*指针变量名;、八, 注意:(1)指针变量前的是指针变量名。“ *,表示改变量的类型为指针型变量,“ * 后的才学(2)在疋义指针变量时必须指疋基类型内2、指针变量的引用指针变量只能存放地址,不要将个整型量

2、(或其他任何非地址类型的数据)赋值给个指针变容里。(1)两个相关运算符:1)&取地址运算符。可以获取某个变量的地址2)* :指针运算符,获取某个指针变量所值向的变量的值及3、指针变量作为函数参数函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。过二、课堂小结本课介绍了指针与地址的概念,指针变量的定义、引用及作为参数的使用。扌曰针:就疋地址,即内程存单兀的编-口, F。指针变量:用来存放另一?变量的地址(即指针)的变量。例如:int a=5, *p=&a;设printf (“% d' , *p );注意:运算符

3、和&的用法,指针变里的自加自减运算。计备注安排上机练习课题第十章数组与指针教学目的掌握指针与数组的知识教材教学重点指向数组的指针变量分析教学难点指向一维数组的指针课时安排2教学方法讲授与演示法相结合一、复习引导上节课介绍了指针变量的定义及其赋值。 个变量有地址, 个数组包含假设干兀素,每个数组兀素都在内存中占用存储单兀,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组和数组兀素把数组起始地址或某兀素的地址放到 个指针变量中。教二、讲授新课所谓数组的指针是指数组的起始地址,数组兀素的指针是数组兀素的地址。引用数组兀素可以用下标法如a3,也可以用指针法,即通过指向数组兀学素

4、的指针找到所需的兀素。使用指针法能使目标程序质量高占内存少,运行速度快0内指向维数组的指针定义形式:容int a10;int *p;及0 p_&或 p=a;a0含义:把数组的首地址赋给指针变量p 0也即:int*p_&a0;或 int *p_a;过二通过指针引用数组兀素按C的规疋:如果指针变量p已指向数组中的一个兀素,那么p+1指向冋一个数组中的下一个兀素而不是简单地加1 0程如果p的初值为&a0,那么:p+i a+i &ai,即指向a数组的第i个兀素。* p+i* (a+i) ai。设指向数组的指针变量也可以带下标,如pi与* p+i等价引用数组兀素时,可以用

5、:计1、下标法如:ai2、指针法,如:* a+i)或 *( p+i )其中,a是数组名,p是指向数组的指针三数组名作函数参数用数组名作实参,在调用函数时是把数组的首地址传送给形参。即实参数组与形参数组共占冋一段内存。如果有-个实参数组,想在函数中改变此数组的兀素的值,实参与形参的对应关系有以下4种情况:1、形参和实参都用数组名;2、实参用数组名,形参用指针变量;教 学 内 容 及 过程 设 计3、头参形参都用指针变量;4、 头参为指针变量,形参为数组名。四)指向一维数组的指针和指针变量1、二维数组的地址int a3 4;级指针:(二维数组某 个兀素的指针)ai, *(a+i) , &a

6、iO都是元素 aiO的地址。ai+j , *(a+i)+j , &aij都是元素 aij的地址。二级指针:(二维数组某一 行的地址)a+i , &ai是二维数组中第1行的地址(行号从0计算)二维数组元素的引用:(1) 下标法:aij(2) 指针法:* (ai+j ) , *(*(a+i)+j)2、二维数组与指针(1 )指向一维数组兀素的指针变量(级指针变量)疋义:一维数组兀素类型*指针变量名;使用过程与指向维数组兀素的指针变量根本相似,只是要注意数组越界情况。(2)指向一维数组某 行的指针变量(一级指针变量) 疋义形式:数组兀素类型(指针变量名)常量表达式;含义:疋义了个指针变

7、量,该指针变量指向个长度为常量表达式值的维数组例如:in t (*q)4;疋义了 个指针变量q,他指向 个长度为 4的整型数组,此时,值是该 维数组 q的的起始地址,而不是该一维数组的第一个兀素的地址。有二维数组:int a3 4;假设有:in t (*q)4;使q指向二维数组第0行的赋值语句是:q = a;或q=&a0;使q指向二维数组第i行 的赋值语句是:q = a+i;或q=&ai;在此前提下:二维数组元素aij可以米用*(*q+j)引用。假设有:int *q ;使q指向二维数组第一行第一个兀素的赋值语句是q - a0;或q -*a;三、课堂小结本课介绍了指向数组的指针,

8、主要是指向 维数组的指针。用指针变量p指向数组a,指针变量p可以+、-,表示指向数组的上一兀素或下一兀素。但编译程序不作下标越C界检查。使用指针既方便有灵活,但初学者容易搞错。还介绍了指针与二维数组,指向二维数组的指针有指向元素的指针和行指针,使用时应注意它们的区别。四、布置作业?C语言习题解答?同步练习备注上机练习教 学 内 容 及 过 程 设 计教学目的在掌握指针与数组的知识根底上,掌握字符串的指针与指向字符串的指针变量教材教学重点指向字符串的指针变量分析教学难点用指针处理字符串课时安排2教学方法讲授与演示法相结合一、讲授新课一)字符串的指针和指向字符串的指针变量1、字付串的表示形式(1

9、)用字符数组存放一个字符串。(2 )用字符指针指向一个字符串。2、字符串指针作函数参数3、字符指针变量和字符数组的讨论(1) 字符数组由假设干个兀素组成,每个兀素中放一个字符,而字符指针变量中存放的是地址,决不是将字符串放到字符指针变量中。(2) 赋值方式。对字符数组只能对各个兀素赋值,不能用以下方法对字符数组赋值;char str14;str= " I love Chi na. ;对字符指针变量,可以米用下面方法赋值:char *a; a= I love China.; /*赋给a的是串的首地址*/(3) 对字符指针变量赋初值:char *a= " 1 love Chin

10、a.等价于 char *a; a= " 1 love China. ;而对数组的初始化:char str14="I love China.不等价于 char str14;str= " I lovChina. ;即数组可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。(4) 如果定义了一个字符数组,在编译时为它分配内存单兀,它有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个地址值,也就是说,该指针变量可以指向一个字符型数据,但如果未对匕赋一个地址值,那么匕并未具体指向一个确疋的字符数据。这很危险。(5) 指针变量的值是可以改变的

11、,数组名虽然代表地址,但它的值是不能改变的。可以下标形式引用所指的字符串中的字符。(6) 用指针变量指向一个格式字符串,可以用它代替printf函数中的格式字符串。也可以用字符数组实现,但由于不能米用赋值语句对数组整体赋值。二、课堂小结本课介绍了指针与二维数组、指针与字符串,指向二维数组的指针有指向兀素的指针和行指针,使用时应注意它们的区别。我们既要掌握用数组处理字符串,也要掌握用指针变量处理字符串。要区分这两种方法的不同之处。二、布置作业?C语言习题解答?同步练习备注上机练习课题第十章指针与函数、指针数组教学1、了解指针与函数的概念目的2、掌握指针数组,一级指针等知识教材教学重点掌握指针数组

12、,二级指针等知识分析教学难点指针数组,二级指针课时安排2教学方法讲授与演示法相结合一、复习引导前面介绍了指针与维数组、指针与字符串,我们可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。二、讲授新课)函数的指针和指向函数的指针变量教函数的地址:函数存储区域的首地址就是该函数的入口点,其函数名表示了入口地址。学1、函数指针变量的定义:存储类型数据类型(*函数指针名)();2、返回指针值的函数一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数内据,即地址。其概念与以前类似,只是带回的值的类型是指针类型而已。格式:类型名*函数名(参数表);容二二)扌曰针数组和扌曰向扌曰针的扌曰针1、指针数组的概念: 个数组中的兀素均为指针类型,称为指针数组。形式:存储类型类型名*数组名数组长度及2、指向指针的指针:二级指针的定义:char *p;含义:表示指针变量 p是指向一个字符指针变量(即指向字符型数据的指针变量)的。过二)指针数组作main函数的形参:四)有关指针的数据类型和指针运算的小结程1、有关指针的数据类型的小结见书中的表设2、指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论