- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 指针(汪同庆)
第九章 指针 简介 指针 功能强大,不易掌握。 用来模拟引用传递。 与数组和字符串关系密切。 可以创建和操作动态的数据结构: 链表 队列 栈 树 指针的概念 指针就是内存对象的地址。 内存对象包括:变量,数组,函数等。 C语言允许直接通过地址来处理数据。 内存对象的地址 变量的地址 用取地址运算符()获得变量在内存中的地址。 数组的地址 即第一个元素的地址,用数组名表示。 函数的地址 用函数名表示。 指针变量 指针变量就是保存内存地址的变量。 指针变量 指针变量的声明 类型说明符 * 指针变量名; * 表示 x_pointer 是一个指针变量 x_pointer 是 int* 类型的指针,读作: 指向 int 型数据的指针 指向整型对象的指针 指针可以声明为指向任何数据类型的对象 声明多个指针时,每个变量前都必须有 * 指针变量 指针变量的初始化 在声明语句中为指针变量指定初值。 指针变量可以被初始化为 0 ,NULL 或 一个地址量。 0 和 NULL 是等价的(用NULL更好) NULL 是在stdio.h(和几个其他头文件)中定义的符号常量 取地址运算符 取地址运算符: 返回变量在内存中的地址。 指针运算符 指针运算符:* 返回指针变量所指向的对象的别名。 *yPtr 就是 y ,因为 yPtr 指向 y。 可以用在赋值语句中。 案例分析:指针运算符 指针运算符 案例分析:指针运算符 指针运算符 运行结果 指针作为函数的参数 指针作为函数的参数用来模拟引用传递。 用指针变量作为函数的形式参数。 调用函数时,用 运算符把实际参数的地址传递给函数。 在被调用函数中,用 * 运算符间接引用实际参数。 案例分析:指针参数 问题:计算任意整数的立方。 值传递:callByValue() 案例分析:指针参数 问题:计算任意整数的立方。 值传递:callByReference() 案例分析:指针参数 问题:计算任意整数的立方。 结果分析 案例分析:指针参数 问题:交换两个变量的值。 哪一种实现是正确的? 指针运算 指针可以参与以下运算: 赋值运算 给指针变量赋值 关系运算 两个指针之间的比较 算术运算 加(减)一个整数 两个指针相减 指针运算 指针的赋值运算 可以把指针赋给同类型的指针变量。 指针运算 指针的赋值运算 把指针赋值给类型不同的指针变量时要进行类型转换。 但 void * 类型的指针是一个例外。 指针运算 指针的赋值运算 比较两个指针的值。 指针运算 指针的算术运算 自增自减(++,--) 加上一个整数(+,+=,-,-=) 两个指针相减 指针运算 指针的算术运算 举例 指针运算 指针的算术运算 举例 指针与数组 数组和指针关系密切。 数组名是一个指针常量。 数组指针:指向数组的指针。 数组指针可以用来完成任何涉及数组下标的操作。 将 bPtr 的值置为数组 b 中的第一个元素的地址 bPtr = b; 等价于 bPtr = b[0]; 指针与数组 数组和指针关系密切。 引用数组元素的表达式 数组元素 b[3] 可以用 *(bPtr + 3) 来引用 3是偏移量 这种表示法称为指针偏移量表示法 还可以用 bPtr[3] 来引用 称为指针下标表示法 与 b[3] 相同 还可以用 *(b + 3) 来引用 指针与数组 数组和指针关系密切。 引用数组元素的表达式 指针与数组 数组和指针互换使用时的注意事项 数组名是一个指针常量。 指针与数组 数组和指针互换使用时的注意事项 注意指针变量的值。 指针与数组 数组和指针互换使用时的注意事项 注意运算符的优先级。 指针与数组 数组参数的值传递 形参数组是一个指针变量。 指针数组 数组元素是指针的数组 类型说明符 *数组名[常量表达式]; 常用来构造字符串数组。 注意: 字符串并不在 suit 数组中。 suit 数组只包含指向字符串的指针。 案例分析:指针数组 问题:洗牌和发牌的模拟 定义数据结构 字符串(指针)数组 suit 保存牌的花色名 字符串(指针)数组 face 保存牌的号码 二维数组 deck 表示一副牌,行对应花色,列对应号码 保存洗牌后牌的序号 案例分析:指针数组 问题:洗牌和发牌的模拟 设计算法 算法的顶部 第一次细化 案例分析:指针数组 问题:洗牌和发牌的模拟 设计算法 第二次细化 案例分析:指针数组 问题:洗牌和发牌的模拟 设计算法 第三次细化 案例分析:指针数组 问题:洗牌和发牌的模拟 源代码 案例分析:指针数组 问题:洗牌和发牌的模拟 源代码 案例分析:指针数组 问题:洗牌和发牌的模拟 源代码 案例分析:指针数组 问题:洗牌和发牌的模拟 源代码 指针 char *suit[4]
您可能关注的文档
- 第6章第1节物质在水中的分散第1课时.ppt
- 第6讲测量.ppt
- 第7-2章 路由重发布.ppt
- 第7周论文学习.ppt
- 第6课时:研究平抛运动.ppt
- 第7章 C语言选择、分支结构程序设计.ppt
- 第7章 DSP应用系统硬件设计.ppt
- 第7章 板料的冲压成形性能与成形极限.ppt
- 第7章 9.实验:验证机械能守恒定律.ppt
- 第7章 函数与预处理.ppt
- 2025年新疆克孜勒苏柯尔克孜自治州单招职业倾向性考试题库附答案.docx
- 2025年新疆克孜勒苏柯尔克孜自治州单招职业适应性考试必刷测试卷及参考答案.docx
- 2025年新疆交通职业技术学院单招职业技能测试题库带答案.docx
- 2025年新疆伊犁哈萨克自治州单招职业倾向性测试题库完美版.docx
- 2025年新疆乌鲁木齐市单招职业适应性考试题库推荐.docx
- 2025年新疆乌鲁木齐市行政职业能力测验题库必考题.docx
- 2025年新疆克孜勒苏柯尔克孜自治州行政职业能力测验题库及答案1套.docx
- 2025年新疆乌鲁木齐市行政职业能力测验模拟试题审定版.docx
- 2025年新疆乌鲁木齐市单招职业倾向性考试必刷测试卷1套.docx
- 2025年新疆乌鲁木齐市行政职业能力测验题库及答案1套.docx
最近下载
- 基孔肯雅热与登革热的区别与预防培训讲座PPT课件.pptx VIP
- 海船船员考试《船舶常识题库考点》模拟考试卷.doc VIP
- 海钓俱乐部商业策划方案.docx VIP
- 通桥(2021)5402-02客货共线铁路钢筋混凝土框架箱涵单孔孔径.pdf VIP
- GB_T 37356-2019色漆和清漆 涂层目视评定的 光照条件和方法.docx VIP
- 2025年农村饮水安全工程监理实施细则.doc
- 课件:针刀治疗颈椎病——钟吉富.ppt VIP
- 校园膳食监督家长委员会制度.docx VIP
- 2025上半年信息系统项目管理师(高级软考)综合知识真题及解析.pdf VIP
- 坚持改革开放--==部编版道德与法治九年级上册.pptx VIP
文档评论(0)