- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05 第五章 指针与数组 C语言程序设计 第二版.pdf
C语言程序设计 第五章 指针与数组
第5章 指针与数组
指针是一种保存变量地址的变量。在 C 语言中,指针的使用非常广泛,原因之一是,指
针常常是表达某个计算的惟一途径,另一个原因是,同其它方法比较起来,使用指针通常可
以生成更高效、更紧凑的代码。指针与数组之 的关系十分密切,我们将在 章中讨论它们
之 的关系,并探讨如何利用这种关系。
指针和goto 语句一样,会导致程序难以理解。如果使用者粗心,指针很容易就指向了错
误的地方。但是,如果谨慎地使用指针,便可以利用它写出简单、清晰的程序。在 章中我
们将尽力说明这一点。
ANSI C 的一个最重要的变化是,它明确地制定了操 指针的规 。事实上,这些规 已
经被很多优秀的程序设计人员和编译器所采纳。此外,ANSI C 使用类型void * (指向void
的指针)代替char *作为通用指针的类型。
5.1. 指针与地址
首先,我们通过一个简单的示意图来说明内存是如何组织的。通常的 器都有一系列连
续编号或编址的存储单元,过些存储单元可以单个进行操 ,也可以以连续成组的方式操 。
通常情况下, 器的一个字节可以存放一个char类型的数据,两个相邻的字节存储单元可存
储一个short (短整型)类型的数据,而4 个相邻的字节存储单元可存储一个long (长整型)
类型的数据。指针是能够存放一个地址的一组存储单元 (通常是两个或4 个字节)。因此,如
果c 的类型是char,并且p 是指向c 的指针, 可用图5-1 表示它们之 的关系:
图5- 1
一元运算符可用于取一个对象的地址,因此,下列语句:
p = c;
将把c 的地址赋值给变量p,我们称p 为 “指向”c 的指针。地址运算符只能应用于内存中
的对象,即变量与数组元素。它不能作用于表达式、常量或register类型的变量。
一元运算符*是 接寻址或 接引用运算符。当它作用于指针时,将访问指针所指向的对
象。我们在这里假定x 与y 是整数,而 ip 是指向int 类型的指针,下面的代码段说明了如
何在程序中声明指针以及如何使用运算符和*:
int x = 1, y = 2, z[10];
int *ip; /* ip is a pointer to int */
By阴风 共 275 页 第 75 页
C语言程序设计 第五章 指针与数组
ip = x; /* ip now points to x */
y = *ip; /* y is now 1 */
*ip = 0; /* x is now 0 */
ip = z[0]; /* ip now points to z[0] */
变量x、y 与z 的声明方式我们已经在前面的章节中见到过。我们来看指针ip 的声明,
如下所示:
int *ip;
这样声明是为了便于记忆。该声明语句表明表达式*ip 的结果是int 类型。这种声明变量的
语法与声明该变量所在表达式的语法类似。同样的原因,对函数的声明也可以采用这种方式。
例如,声明
double *dp,atof (char *);
表明,在表达式中,*dp和atof(s)的值都是double类型,且atof 的参数是一个指向char
类型的指针。
我们应该注意,指针只能指向某种特定类型的对象,也就是说,每个指针都必须指向某
种特定的数据类型。(一个例外情况是指向void 类型的指针可以存放指向任何类型的指针,
但它不能 接引用其自身。我们将在5.11 节中详细讨论该问题)。
如果指针ip指向整型变量,那么在x 可以出现的任何上下文中都可以使用*ip,因此,
语句
您可能关注的文档
- 通信原理课程设计 matlab实习报告.doc
- !GSM系统原理.pdf
- (2009年7月)数据库应用技术试卷.pdf
- (2011.08.11)DSP-II+实验指导书(双CPLD).doc
- (成电)电子科技大学专业介绍.doc
- (计算机网络应用)2014年湖北省职业院校技能大赛(高职组)赛项技术文件.pdf
- -Unlicensed-ERP原理与应用课程考核说明.pdf
- ...《新课程中学科学教学设计与案例分析》复习资料(一).doc
- 000-课程说明.pdf
- 01 第一章 导言 C语言程序设计 第二版.pdf
- 5.3.1函数的单调性(教学课件)--高中数学人教A版(2019)选择性必修第二册.pptx
- 部编版道德与法治2024三年级上册 《科技提升国力》PPT课件.pptx
- 2.7.2 抛物线的几何性质(教学课件)-高中数学人教B版(2019)选择性必修第一册.pptx
- 人教部编统编版小学六年级上册道德与法治9 知法守法 依法维权(第一课时)课件.pptx
- 三年级上册品德道德与法治《学习伴我成长》.pptx
- 部编版小学道德与法治六年级上册6 人大代表为人民 课件.pptx
- 部编版小学道德与法治六年级上册1感受生活中的法律第一课时课件.pptx
- 2.5.2圆与圆的位置关系(教学课件)-高中数学人教A版(2019)选择性必修第一册.pptx
- 2.5.1直线与圆的位置关系-(教学课件)--高中数学人教A版(2019)选择性必修第一册.pptx
- 14.1.1 同底数幂的乘法(教学课件)-初中数学人教版八年级上册.pptx
最近下载
- 广告法试题及答案.docx VIP
- 第四代黄金微针—赵小忠.pptx VIP
- 2024年山西省高考考前适应性测试英语A卷.docx
- 2022-2023学年天津市河北区九年级上学期期中数学试卷(含答案解析).docx
- 施乐5代机AP DC V5070 4070 DP 5105d复印机打印机中文维修手册.pdf
- 丙烯酸树脂生产工艺物料标识20161229(2).docx VIP
- 网络的利与弊 课件综合实践八年级.ppt
- 苯胺生产工艺物料标识20161228(1).docx VIP
- 江苏南通市住房公积金管理中心招考聘用政府购买服务岗位人员4人笔试历年高频考点(难、易错点)附带答案详解.docx VIP
- 2024《论如何提高铁路客运服务质量—以南京客运段为例》11000字.docx
文档评论(0)