《计算机程序设计基础》课程授课教案(C语言)第6章 指针进阶与内存空间管理

《计算机程序设计基础C语言》教案授课内容第6章指针进阶与内存空间管理指针的进一步理解指针数组教学目的函数指针和要求动态内存分配main函数的命令行参数重点指针数组难点函数指针教讲授学一、指针变量的进一步理解安对于定义语句:int*p;float*q;排int*和float*是指针变量p、g的类型1个机器字长,TurboC中为2字节,VC++中为4字节,可用sizeofO检测。int和float是指针变量p、q所指向的变量的类型;指针变量p、q的值是它们一旦被赋值时所指向的变量的首地址值。指针都是依存于它所指向变量存在的。这些变量可以是普通变量、数值数组、字串、函数、结构体等等二、指针数组元素均为指针类型数据的数组称为指针数组,即数组中的每一个元素都是指针变量。指针数组的定义形式为:类型标识符变量名[常量表达式例如:char*pChar[5]注意区分:int*p[5];和 int (*p)[5];指针数组常用于处理字符串。可对长度不等的字符串排序。三、函数指针一个函数在编译时被分配一个入口地址。这个入口地址就称为该函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。常用于通用函数的算法实现,例如定义一个指向函数的指针变量的一般形式数据类型标识符(*指针变量名)(形参类型列表);使用函数指针,C的编译器需要知道的除了函数指针变量,还需要知道函数的返回类型、参数个数、参数类型。四、动态内存分配堆(heap)是指未使用的内存空间。2.内存分配函数mallocO和callocO用于建立受保护的堆内存区域。例如对于整型指针 int *t;t=(int *)malloc(10*sizeof(int);或 t=(int *)calloc(10,sizeof(int);在堆上分配了10个整数。3.函数freeO释放指定的堆空间
《计算机程序设计基础C语言》教案 授课内容 第6章 指针进阶与内存空间管理 教学目的 和要求 指针的进一步理解 指针数组 函数指针 动态内存分配 main函数的命令行参数 重点 难点 指针数组 函数指针 教 学 安 排 讲授 一、指针变量的进一步理解 对于定义语句: int *p; float *q; int*和float*是指针变量p、q的类型; 1个机器字长,Turbo C中为2字节, VC++中为4字节, 可用sizeof()检测。 int和float是指针变量p、q所指向的变量的类型; 指针变量p、q的值是它们一旦被赋值时所指向的变量的首地址值。 指针都是依存于它所指向变量存在的。 这些变量可以是普通变量、数值数组、字串、函数、结构体等等。 二、指针数组 元素均为指针类型数据的数组称为指针数组,即数组中的每一个元素都是指针 变量。 指针数组的定义形式为: 类型标识符 变量名[常量表达式] 例如:char*pChar[5]; 注意区分:int *p[5]; 和 int (*p)[5]; 指针数组常用于处理字符串。可对长度不等的字符串排序。 三、函数指针 一个函数在编译时被分配一个入口地址。这个入口地址就称为该函数的指针。 可以用一个指针变量指向函数,然后通过该指针变量调用此函数。 常用于通用函数的算法实现,例如 定义一个指向函数的指针变量的一般形式 数据类型标识符 (*指针变量名)(形参类型列表); 使用函数指针,C的编译器需要知道的除了函数指针变量,还需要知道函数的 返回类型、参数个数、参数类型。 四、动态内存分配 堆(heap)是指未使用的内存空间。 2.内存分配函数malloc()和calloc()用于建立受保护的堆内存区域。例如对于整 型指针 int *t; t=(int *)malloc(10*sizeof(int)); 或 t=(int *)calloc(10,sizeof(int)); 在堆上分配了10个整数。 3.函数free()释放指定的堆空间

4.malloc(的返回值的是一个通用类型指针。可以用(int*)转成整形指针,也可转化为其他类型指针。5.用malloc0的好处是可以在程序中随时开辟指定大小的堆空间,并当做数组使用。6.若内存分配失败,malloco返回null值因此,通常用if(!t)exit(1):来建立错误陷阱。五、main函数的命令行参数C语言的mainO函数可带有两个形参,形式为main (intargc, char*argv[)argc表示命令行参数的个数指针数组argv[的元素分别指向命令行各参数的首地址:argv[O]指向文件名(的首地址);argv[1]指向第一个参数(的首地址);argv[2]指向第二个参数(的首地址)如果文件名前有路径,保存在argv[0]中。新的C/C++标准都分别规定了mainO的接口只有两种:intmain(void);int main(int argc,char *argv[l);返回0表示运行成功,返回非0表示失败。本章小结理解指针的真正含义(指针的类型,指针指向的类型,指针的值)。指针数组的定义和使用方法。函数指针的含义,定义,已经函数指针的常用用法。动态内存分配函数calloc(和malloc(,已经内存回收函数free(的使用i已经相应堆的概念。i正确使用带参数的mainO函数。点名、课堂提问讨论小结、作业布置
4.malloc()的返回值的是一个通用类型指针。 可以用(int *)转成整形指针,也可转化为其他类型指针。 5.用malloc()的好处是可以在程序中随时开辟指定大小的堆空间,并当做数组 使用。 6.若内存分配失败,malloc()返回null值。 因此,通常用if(!t)exit(1);来建立错误陷阱。 五、main函数的命令行参数 C语言的main()函数可带有两个形参,形式为 main(int argc,char *argv[]) argc表示命令行参数的个数 指针数组argv[]的元素分别指向命令行各参数的首地址: argv[0]指向文件名(的首地址); argv[1]指向第一个参数(的首地址); argv[2]指向第二个参数(的首地址) 。 如果文件名前有路径,保存在argv[0]中。 新的C/C++标准都分别规定了main()的接口只有两种: int main(void); int main(int argc,char *argv[]); 返回 0 表示运行成功,返回非 0 表示失败。 本章小结 ¡ 理解指针的真正含义(指针的类型,指针指向的类型,指针的值)。 ¡ 指针数组的定义和使用方法。 ¡ 函数指针的含义,定义,已经函数指针的常用用法。 ¡ 动态内存分配函数calloc()和malloc(),已经内存回收函数free()的使用, 已经相应堆的概念。 ¡ 正确使用带参数的main()函数。 点名、课堂提问讨论 小结、作业布置
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机程序设计基础》课程授课教案(C语言)第5章 模块化编程.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第4章 数组和指针.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第3章 控制结构.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第2章 基本数据类型和运算符.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第1章 C语言概述.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 15 - Data Structures.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 14 - Files.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 13 - More functions.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 12 - Basics of Functions.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 11 - Strings.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 10 - Basics of Pointers.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 9 - Arrays.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 3 - Hardware and Software.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 8 - Looping.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 7 - Making Decisions.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 6 - Operators, Expressions and Statements.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 5 - Standard IO.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 4 - Simple Data Types.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 2 - Binary Representation.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 1 - Introduction.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第7章 结构体与共同体.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第8章 数据文件编程方法.pdf
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-10 IO函数值和注释语句.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-8 标识符和关键字.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-11 编程风格与常见错误.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-9 输入输出函数.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-7 实例求圆柱体底面积和体积.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-5 第1个C程序解析.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-6 预处理指令#define#include.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-4 算法的表示.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-1 C语言的概述.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-2 结构化程序设计方法.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-3 算法的概念和特点.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-7 自增和自减运算符.pptx
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-8 逗号运算符和逗号表达式.pptx
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-10 混合运算.pptx
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-9 其他运算符.pptx
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-3 变量.pptx
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-4 指针变量.pptx
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-6 赋值运算符和赋值表达式.pptx