
C语言程序设计第八章巧用指针.pptx
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本PPT介绍《C语言程序设计》第八章内容,重点讲解如何巧妙运用指针进行高效编程。通过实例展示指针的基本操作及高级应用技巧。
《C语言程序设计》第八章主要介绍了指针的概念、如何定义与使用指针变量、通过指针引用数据的方法,包括数组及字符串的访问机制;返回指向内存地址的函数的应用实例;探讨了指针数组以及多重指针(即“指针的指针”)的相关概念,并讲解了动态内存分配技术及其在程序中的运用。
**8.1 指针是什么?**
本节解释了什么是内存单元的地址,通过该地址可以找到所需的变量。例如,在VC++中整型变量占用4个字节,单精度浮点数同样占据4个字节空间,而字符类型则仅需一个字节即可满足存储需求。当程序定义各种类型的变量时,编译器会分配相应的内存区域,并为每一个字节指定独一无二的编号作为其地址标识符;这就好比旅馆中的房间号一样。在特定地址所关联的空间中放置数据,则类似于该空间内居住着对应的“旅客”。因此,通过已知地址能够定位到具体变量单元的位置,可以说这个地址指向了相应的存储位置,并且将这种特性形象地称为“指针”。
**8.2 指针变量的定义与使用**
这里详细说明了一个用于保存内存地址值类型的特殊变量——指针变量。例如:`int *i_pointer;` 定义的就是一个整型数据类型指向的指针,它的内容实际上就是另一个整数变量 i 的存储位置(即其地址)。这类特殊的变量能够用来存放任意其他变量的具体物理地址;如通过语句 `i_pointer=&i;` 将可以将某特定整数值 i 所在内存单元的确切位置赋予给指针变量 i_pointer。
**8.3 用指针访问数组**
该部分介绍了如何利用指向数组首元素的指针来遍历整个集合。例如,若声明了 `int a[5];` 并随后定义了一个同样类型的指针:`int *pointer = a;` ,这样 pointer 就会直接关联到数组a的第一个成员上;之后通过表达式 `pointer[i]` 可以轻松地访问到任意元素。
**8.4 用指针处理字符串**
这一章节进一步探讨了使用字符型指针来操作文本序列的方法。比如,声明一个字面量:“char str[] = hello;”,接着创建一个指向该数组起始位置的指针变量:`char *pointer = str;`. 经过这样的设定后,我们就可以通过 `pointer[i]` 的方式轻松地访问字符串中的每一个字符。
**8.5 包含返回指针类型的函数**
本节讲述了如何在C语言中定义能够产生地址信息作为输出结果的函数。例如:`int *func();` 是一个声明为返回整型指针值的功能模块;通过 `int *p = func();` 这样的调用方式,可以将由该函数产生的具体内存位置赋给变量 p。
**8.6 指针数组与多重指针**
这部分内容介绍了更为复杂的概念——即包含多个元素的指针集合以及指向其他指针类型的特殊变量。例如:`int *p[5];` 定义了一个包含五个整数型地址值的一维数组;而 `int **pp;` 则代表一个二级指针,能够直接定位到另一个一级指针的位置。
**8.7 动态内存分配与指向其的指针变量**
本节着重讨论了如何在程序执行期间根据实际需求灵活地创建新的数据结构。例如:利用标准库中的 `malloc()` 函数可以动态申请一块连续的存储空间,如:`int *p = (int *)malloc(10 * sizeof(int));` 即为实例之一;这样便可以在运行时获得一个足够容纳十个整数的空间,并通过指针变量 p 来管理这块新分配出来的内存区域。
**8.8 指针相关概念总结**
最后,本章对上述所有关于C语言中使用和操作内存地址的关键知识点进行了简要回顾。
全部评论 (0)


