15 字符指针、函数与指针、指针数组.docVIP

  • 5
  • 1
  • 约1.81万字
  • 约 5页
  • 2017-08-02 发布于河南
  • 举报

15 字符指针、函数与指针、指针数组.doc

教学内容:字符指针、函数与指针、指针数组 教学目标 1.掌握通过指针引用字符串的方式 2.了解指向函数的指针变量的作用;掌握指向函数的指针变量的定义、引用 3.理解返回指针值的函数 4.理解指针数组的概念;指向指针的指针的概念;了解常用动态内存分配函数的使用 重点难点 1.字符指针的使用 2.指针数组的使用 教学方法与手段 1.讲授、问答、实验法 2.多媒体 教学内容及教学过程 一.通过指针引用字符串 1、通过字符指针引用字符串 首先回顾字符数组处理字符串的方式,再讲解字符指针的处理方式。 2、字符指针作函数参数 如果想把一个字符串从一个函数“传递”到另一个函数,可以用地址传递的办法,即用字符数组名作参数,也可以用字符指针变量作参数。 在被调用的函数中可以改变字符串的内容 在主调函数中可以引用改变后的字符串。 3、字符指针变量和字符数组的比较 二.指向函数的指针 1、函数的指针 编译系统为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。例如:int (*p)(int,int); 2、用函数指针调用函数 3、用指向函数的指针作函数参数 指向函数的指针变量的一个重要用途是把函数的地址作为参数传递到其他函数 指向函数的指针可以作为函数参数,把函数的入口地址传递给形参,这样就能够在被调用的函数中使用实参函数 三.返回指针值的函数 一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。其概念与以前类似,只是返回的值的类型是指针类型而已 定义返回指针值的函数的一般形式为 类型名 *函数名(参数表列); float *search(float (*pointer)[4],int n) { float *pt; pt=*(pointer+n); return(pt); } 四.指针数组和多重指针 1、指针数组 一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。 定义一维指针数组的一般形式为 类型名*数组名[数组长度]; int *p[4]; char *name[ ]={“Follow”,“Great”, “FORTRAN”,“Computer”}; 2、指向指针数据的指针 char *name[]={“Follow”,,“Great”, “FORTRAN”,“Computer”}; char **p; int i; for(i=0;i5;i++) { p=name+i; printf(%s\n,*p); } 3、指针数组做main函数的形参 在某些情况下,main函数可以有参数,例如: int main(int argc,char *argv[]) 其中,argc和argv就是main函数的形参,它们是程序的“命令行参数”。argv是*char指针数组,数组中每一个元素(其值为指针)指向命令行中的一个字符串。 五.动态内存分配与指向它的指针变量 1、动态内存分配的概念 非静态的局部变量是分配在内存中的动态存储区的,这个存储区是一个称为栈的区域 C语言还允许建立内存动态分配区域,以存放一些临时用的数据,这些数据需要时随时开辟,不需要时随时释放。这些数据是临时存放在一个特别的自由存储区,称为堆区 2、如何建立内存的动态分配 对内存的动态分配是通过系统提供的库函数来实现的,主要有malloc,calloc,free,realloc这4个函数。 3、void指针类型 int main() { void check(int *); int *p1,i; p1=(int *)malloc(5*sizeof(int)); for(i=0;i5;i++) scanf(%d,p1+i); check(p1); return 0; } void check(int *p) { int i; printf(They are fail:); for(i=0;i5;i++) if (p[i]60) printf(%d ,p[i]); printf(\n); } 单元小结 介绍了字符指针引用字符串的方式;讲解了指向函数的指针变量的作用和定义方式,并通过实例讲解其调用函数的形式。给出了指针数组的定义及应用,并说明带参数的main函数中指针数组的作用。介绍了常用动态内存分配函数的使用方式。 学生作业 课本P291 2、6、7、8、11、12

文档评论(0)

1亿VIP精品文档

相关文档