- 1、本文档共74页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 指针(指针数组)
第7章 指针 1.深刻理解并掌握指针的概念。 2.掌握指针变量的定义和应用,指针变量作为函数参数的用法。 3.掌握指向数组的指针与指向数组的指针变量的概念、定义和应用。 4.掌握指向字符串的指针的定义和应用。 5.理解指向函数的指针的定义和用法。 6.了解返回指针值的函数的定义和应用,了解它与指向函数的指针变量的区别。 7.了解指针数组的定义和应用,掌握指针的指针的定义和应用,了解它指针数组与指向数组的指针变量的区别。 第7章 指针 ? 7.1 地址和指针的概念 ? 7.1 地址和指针的概念(P136) 变量与地址 内存地址 计算机内存的组织方式是把所有单元顺序排列, 每个单元 (字节) 有一个顺序编号, 称单元的地址或称为指针。 数据的存取是在内存地址所标识的存储单元中进行的。 内存单元的地址与内存单元中的数据是两个完全不同的概念。 变量地址 系统分配给变量所需的内存单元的起始地址。 ? 7.1 地址和指针的概念 ? 变量是对程序中数据存储空间的抽象 变量建立后, 意味着为其指定了一个存储位置, 分配了存储变量值所需要的存储单元。 变量值的存取通过变量在内存中的地址进行 任何变量在其存在期间总有一个确定的、固定的存储位置, 即固定的地址。变量地址可作为数据来操作。 ? 7.1 地址和指针的概念 ? 指针与指针变量 指针 一个变量的地址 指针变量 专门存放变量地址的变量 ? 7.1 地址和指针的概念 ? 变量值的存取 直接存取 一般情况下, 在程序中对变量进行存取操作, 实际上就是对某个地址的存储单元进行操作, 只不过变量和具体地址的联系由编译系统完成, 用户无须知道变量在内存中的具体地址, 这种直接按变量地址存取变量值的方式称 “直接存取”。 例 scanf(%d,i) 的执行过程是这样的: 找到变量 i 的起始地址 2000; 然后将键盘输入的值10 送到内存单元 2000 和 2001 中。 例 printf(%d,i)的执行过程与scanf()很相似: 首先找到变量 i 的起始地址2000, 然后从 2000 和 2001 中取出其值,最后将它输出。 ? 7.1 地址和指针的概念 ? 间接存取 指针变量也是变量,也有自己的存储地址,设指针变量 p 的存储单元中放的是变量 i 的地址, 这时要访问 i, 可以先找到变量 p 的地址, 从中取出 i 的地址, 再去访问 i 的内容, 这种通过变量 p 间接得到变量 i 的地址, 然后再存取 i 的值的方式称 “间接存取”。 指针机制是一种间接访问其他对象的手段, 目的是为了更加灵活方便地对数据进行操作。 ? 7.1 地址和指针的概念 ? 说明 指针变量的赋值操作有特殊的意义, 由于指针变量的值只能是其他对象的地址, 指针变量赋值就是把某个变量的地址赋给指针 (这个过程称指针指向变量), 因此, 在程序运行的不同时刻, 指针可以指向不同的变量。 指针的应用使程序代码更简洁、更高效。但使用指针会降低程序的可读性, 使用不当, 可能造成严重的错误甚至引起系统崩溃。 C语言编译器对指针的检查较弱, 查错比较困难,要求程序员控制指针的有效性。 从程序设计角度讲, 更应该注意用普通变量无法实现只有用指针才能实现的功能和机制, 如改变调用函数环境的值等。 ? 7.2.1 指针的定义 ? 7.2 ? 7.2 指针的定义、使用和运算 指针的定义 一般形式 定义指针变量的一般形式 类型名 *指针变量1, *指针变量2, … ; 说明 指针变量的值 为某个内存单元的地址值(地址编号)。值的类型均为整型。 通过指针访问的对象有类型 C 语言规定,任何一个指针变量, 只能指向具有某种特定类型的变量。定义中的类型名限定了指针变量可以关联的对象的范围。 指针变量也是变量 像普通变量一样可以赋值、取值等。但要满足类型约束。 ? 7.2.1 指针的定义 ? 7.2 ? 空指针 定义 空指针是一个特殊的指针,它的值是0 说明 0 的符号常量 为 NULL(在 stdio.h中定义),系统保证这个值不会是任何变量的地址 空指针对任何指针类型赋值都是合法的 一个指针变量具有空指针值, 表示当前它没有指向任何有意义的值。 用 p = NULL ( 比 p = 0 ) 的形式为好。 p = NULL与未对 p 赋值不同。 用途: 避免指针变量的非法引用 在程序中常作为状态比较 ? 7.2.1 指针的定义 ? 7.2 ? void 指针 定义 (void*) 类型的指针叫通用指针, 它可以指向任何变量, C语言允许直接把
您可能关注的文档
- 碳化硅微粉生产线项目可行性建议书:有事联系QQ6884408.doc
- 硅橡胶加热器用使用寿命有多长.doc
- 碳纳米管的研究方法及进展.ppt
- 硕士学位论文-时序差分学习在非完备信息机器博弈中的应用.doc
- 示范性基层电大评选学生问卷调查结果统计表.doc
- 社交舞交谊舞-四川大学社交舞交谊舞课教案范例.doc
- 碳素行业分析.doc
- 社会主义荣辱观复习课件.ppt
- 碳酸钙 二氧化碳.ppt
- 社会学概论参考资料开卷考试.doc
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].docx
- 情绪价值系列报告:春节消费抢先看-国证国际证券.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(解析版).docx
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].docx
- 液冷盲插快接头发展研究报告-全球计算联盟.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(原卷版).docx
- 精品解析:北京市东直门中学2024届高三考前练习数学试卷(解析版).docx
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第2章 人体的神经调节》大单元整体教学设计[2020课标].docx
文档评论(0)