- 1、本文档共190页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【主要内容】 指针的含义、使用规则及方法实例; 通过指针变量与普通变量的对比,说明其表现形式与本质含义; 指针变量与普通变量的不同之处以及使用上的相同之处; 指针与数组的关系; 指针偏移量的本质含义; 读程序的训练; 自顶向下算法设计的训练; 指针调试要点。 【学习目标】 理解并掌握指针的概念; 理解指针、数组和字符串之间的关系; 掌握指针对变量、数组的引用方法; 能够通过指针使用字符串数组。 要查看一本书中的相关内容,我们的一般做法是先查看目录,而不是直接在整本书中查找内容。书的内容在书中的位置是通过“页码”标示的。 在计算机中,所有的数据都是存放在存储器中的,为方便数据的查找,也有“数据存放位置”的概念,计算机中数据的位置是用“地址”标示的。 一般把存储器中的一个字节(8?bit)称为一个内存单元,为了方便管理与访问这些内存单元,可为每个内存单元编上号,根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址,如图6.1所示。 图6.1 内存 不同数据类型的数据所占用的内存单元数不等,如整型量占2个单元, 字符量占1个单元等。 变量a的地址是2000还是2001? 前面介绍的一个变量的三要素中的变量地址,是编译或函数调用时系统为变量分配的内存单元的编号。当一个变量占多个内存单元时,其地址规定为单元编号中最小的那个。 内存及地址 内存(Memory)也被称为内存储器,是计算机中重要的部件之一,用来暂时存放CPU中的运算数据以及与硬盘等外部存储器交换的数据,程序必须装入内存才能执行。 有4个变量,均为整型,设它们在内存中的状态如图6.2所示。其中,变量ptr的值比较特殊,是变量k的地址,我们称变量ptr是指向k的指针,简称ptr指向k。 图6.2 内存示意图 指针变量既然是变量,它就有和普通变量一样的三个要素,即变量名、变量值和单元地址。它和普通变量的类比如表6.1所示。 表6.1 变?量?三?要?素 指针的类型是什么? 由指针变量的含义可知,指针变量和普通变量唯一不同的地方在于,它的值只表示地址,而不能是有其他含义的数值。 既然指针变量的值是地址,而地址又是整数,那么指针的类型是不是就是整型呢? 在这里特别需要注意,C语言规定,指针变量的类型,是它指向单元的数据的类型。如前面的ptr指针,它的类型就是变量k的类型,k是整型,则ptr的类型为int;若k是实型,则ptr的类型为float型。 指针是一种特殊的变量,和普通变量相比,它的值是地址;它的类型是它指向单元的数据的类型。 在指针变量名中包含字母ptr,这样可以有很醒目的提示作用。 定义一个指针变量和普通变量一样,只不过要在变量名前加上一个星号*,*表示这是一个指针变量,指针变量的定义形式如下: 类型说明符 *变量名; 变量类型说明符表示本指针变量所指向的存储单元的数据类型。 例如: int *p1;表示p1是一个指针变量,它的值是某个整型变量的地址,或者说p1指向一个整型变量。至于p1究竟指向哪一个整型变量, 应由向p1赋予的地址来决定。 再如: float *p3; /*p3是指向浮点变量的指针变量*/ char *p4; /*p4是指向字符变量的指针变量*/ 应该注意的是,一个指针变量只能指向同类型的变量,如P3 只能指向浮点变量,不能时而指向一个浮点变量, 时而又指向一个字符变量。 空类型void问题 (1) 空类型:其类型说明符为void。void类型不指定具体的数据类型,主要用于表示函数没有返回值和通用指针。 (2) 空类型函数:在第5章“函数”中,我们已经了解了空类型函数的含义。在调用函数值时,通常应向调用者返回一个函数值,这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给予说明。但是,也有一类函数,调用后并不需要向调用者返回函数值,这种函数可以定义为“空类型”。 (3) 空类型指针:也称通用类型指针或无确切类型指针,其含义是这个指针指向的内存区域的数据可以是C允许的任何类型。 为什么要设置void类型的指针呢?这是由于指针使用时,在某些情形下,指针指向的存储单元无法事前确定要存放什么类型的数据,因此需要专门设计这种解决机制。 比如malloc库函数,功能是在程序运行的过程中,动态地申请一片连续的存储区域,返回这个存储区的起始地址。作为malloc函数的设计者,事前无法确
您可能关注的文档
- C语言程序设计实验指导 教学课件 作者 唐新来 王萌 第4章数组.ppt
- C语言程序设计实验指导 教学课件 作者 唐新来 王萌 第5章 函数.ppt
- C语言程序设计实验指导 教学课件 作者 唐新来 王萌 第6章指针.ppt
- C语言程序设计实验指导 教学课件 作者 唐新来 王萌 第7章复杂数据类型.ppt
- C语言程序设计实验指导 教学课件 作者 唐新来 王萌 第8章文件.ppt
- C语言程序设计实验指导 教学课件 作者 唐新来 王萌 第9章预编译和位运算.ppt
- C语言程序设计实用教程 教学课件 作者 陈方 C语言程序设计模拟试卷A.doc
- C语言程序设计实用教程 教学课件 作者 陈方 C语言程序设计模拟试卷B.doc
- C语言程序设计实用教程 教学课件 作者 陈方 第1章.ppt
- C语言程序设计实用教程 教学课件 作者 陈方 第2章.ppt
- 培养一年级学生的自学能力-培养孩子自学能力帮助.pptx
- 《经济波动周期中的美国梦解析:以盖茨比为例(2025版)》.pptx
- 会展概论知到智慧树期末考试答案题库2025年海口经济学院.docx
- 三国历史人物插画与现代商务结合2025主题PPT视觉方案.pptx
- 内蒙古自治区乌兰察布市集宁二中 2024—2025 学年下学期高二年级 4 月月考卷历史试卷.pdf
- 三年级上册第五单元颜色问答场景化微课PPT模板(2025优化版).pptx
- 冲压机生产线建设项目计划书.docx
- 《2025年跨学科科普夏令营模块化教学课件资源包》.pptx
- 内蒙古自治区乌兰察布市集宁二中 2024—2025 学年下学期高二年级 4 月月考卷历史试卷含答案.pdf
- 《针对肥胖率防控的2025体育课膳食运动融合教学模式》.pptx
文档评论(0)