- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.1 指针的概念 到目前为止,参加运算的操作对象都是基本类型和构造类型的变量,处理的一般都是变量本身。但在系统和控制类等需要与硬件打交道的程序设计中,往往需要涉及到对变量地址的操作和处理。 7.1.1 指针和变量的地址 7.1 指针的概念 7.1.2 指针变量的定义 指针和其它类型的变量一样,使用前必须先定义。定义指针的一般形式为: 基类型标识符 *指针1,*指针2,…,*指针n; 这里*只是一个表示指针的运算符。指针的数据类型包括int、float、char、double和void五种基本类型。指针的数据类型并不表示指针本身的类型而是表示该指针可以指向何种类型的数据。例如: int *pc, *p_es, *p_cs; float *p_avg; 定义了字符型、整型和浮点型指针pc、p_es、p_cs和p_avg,表示它们可分别用来指向字符型、整型和实型的变量或数组。 指针变量也可以与普通变量一起定义: float *pf, a, b; 7.1.3 指针变量的引用 指针只有指向某一对象,如变量、数组、函数、结构、文件等,才有实际意义。指针指向对象,是将该对象的地址存入指针变量中。如果使用未指向特定对象的指针,就会出现错误,甚至使程序运行失败。 当指针变量指向某一对象后,就将该对象的地址存放在指针变量中。 7.1.3 指针变量的引用 int es = 86, x; float avg = 88.5; /* 定义指针变量p_es */ int *p_es; /* 使指针变量p_es指向es */ float *p_avg; /* 使指针变量p_es指向es */ p_es = es; /* 使指针变量p_avg指向avg */ p_avg = avg; /* 使用*运算符间接访问其所指向的变量es, x的值为86 */ x = *p_es; 例7-1 通过指针变量实现间接访问 #include stdio.h /* 输入输出操作头文件 */ main() { int es, cs; /* 定义整型变量 */ float avg; /* 定义实型变量 */ int *p_es, *p_cs; /* 定义指向整型变量的指针变量 */ float *p_avg; /* 定义指向实型变量的指针变量 */ /* 将变量es、cs、avg的首地址赋给指针变量p_es、p_cs、p_avg */ p_es = es; p_cs = cs; p_avg = avg; /* 输入数据前显示提示信息 */ printf(\nPlease enter English and Chinese grades:); /* 输入两门课程的成绩,也可改为:scanf(%d%d, p_es, p_cs) */ scanf(%d%d, es, cs); avg = (es + cs) / 2.0; /* 求平均 */ /* 使用两种不同的方法输出两门课程的成绩和其平均成绩 */ printf(\nEnglish=%d,Chinese=%d,Average=%f, es, cs, avg); printf(\nEnglish=%d,Chinese=%d,Average=%f, *p_es, *p_cs, *p_avg); } 7.1.4 指针类型与实际存储的匹配 指针变量一经定义后,其所指向的变量数据类型就已确定了。如例7-1中第5行的int *p_es、*p_cs;表示它们都指向整型类变量,而第6行的float *p_avg;表示其指向实型类变量。因此在指针变量的指向时,一定要和其定义时完全一致,否则将出现不可预料的错误。 7.2 指针变量的运算 7.2 指针变量的运算 7.2 指针变量的运算 7.2 指针变量的运算 7.3 指针与数组 7.3.1 指向数组元素的指针 7.3.2 通过指针引用数组元素 指针变量在运算时的注意事项 7.3.3 指针与多维数组 二维数组中相关指针与数组元素的关系 例7-5 各种地址及数组元素举例 7.3.3 指针与多维数组 例7-7 使用行指针输出二维数组中的各个数组元素的值 7.4 指针与字符串 7.4 指针与字符串 7.4 指针与字符串 【例7-10】 使用字符指针实现字符串的复制 7.5 指针数组 【例7-11】 利用指针数组输出二维数组的值 例7-12 利用指针数组实现字符串的排序(用冒泡法实现从小到大排序) 7.6 指向指针的指针 例7-13 利用指向指针的指针实现字符串的排序 7.7 指针与函数 例7-14 输入两个整数,将两个数互换后输出 7.7.2
您可能关注的文档
最近下载
- ICD-9-CM-3手术与操作国家临床版亚目表.xlsx VIP
- 图形创意(第二版)林家阳 高教 全套课件.ppt
- Unit 2 Helping at home 第1课时 Get ready(教学课件)英语外研版三起四年级上册(新教材).ppt
- 大数据精准营销PPT课件.pptx VIP
- 天线与电波传播课件(第六章)电波传播概论.ppt VIP
- 公司目视化管理手册..pptx VIP
- 非遗工艺数字化呈现的2025年文化传承项目阶段汇报PPT.pptx VIP
- 演讲与口才中职全套完整教学课件.pptx
- CNG及LNG加气站风险管控资料.doc VIP
- 一种拉曼-荧光双模生物传感器及其制备方法与其在miRNA检测中的应用.pdf VIP
文档评论(0)