- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C中指针解析
C中指针解析 摘 要: 指针是C++语言中最难掌握的概念之一,错误地使用指针所带来的后果往往是很严重的,有时甚至会导致系统崩溃。因此,正确使用指针是C++语言学习的重点和难点。 关键字: C++指针 地址 解析 计算机内存是由二进制位组成的,为了便于访问和管理,每8位组成一个字节,一个字节称为一个存储单元。通常,系统对每个存储单元按期顺序进行编号,编号能惟一确定任何一个字节的位置,就像根据房间号能惟一确定任何一个房间一样,于是编号被形象地称为地址。程序所处理的每一个数据必须存放于计算机内存中才能运行,这些数据按其所属的数据类型,需要占据一定数量的连续的存储单元,而这些存储单元都位于内存的某个特定位置,都有一个惟一的起始地址。 因为地址指示了字节在存储器中的位置,所以地址也被形象地称为指针。指针是一个存储单元的地址值,用来存放地址(即指针)的变量称为指针变量,常常将指针变量简称为指针。C++中的指针按照它所指向的对象可以划分为变量指针、数组指针、函数指针、对象指针、类的数据成员指针和类的成员函数指针。 一、变量的指针 1.设type代表任意一种基本说明符,则: type x;//声明了一个type型变量x。 type*p;//声明了一个type型指针变量p,“*”表示声明的p是一个指针变量,p所指向的变量的类型是type型。 p=x;//指针变量p指向了变量x,是地址符号,x表示变量x的地址。只有变量x的数据类型和指针变量p所指向的变量的数据类型相同才可作此操作。 2.可声明多级指针变量,如: type**p;//声明了一个指向type类型的二级指针变量p。 二、数组与指针 1.数组的指针 type a[3];//声明了一个具有三个type类型数据的数组。 在这里a有两个涵义: ①作为数组名,表示数组这个整体。 ②表示这个数组在内存所占的一段连续的存储单元的起始地址,也就是这个数组中第一个元素的地址,即a[0]。 type*p;//声明了一个type型指针变量p。 p=a;//将数组的起始地址赋给指针变量,使指针变量p指向数组,相当于p=a[0]。 2.数组指针 type(*p)[3];//声明了一个指针p,这个指针指向具有3个的type类型元素的数组。 3.指针数组 type*p[3];//声明了一个具有三个指针元素的数组,每个元素都是可以指向type类型数据的指针变量 三、函数与指针 1.返回指针值的函数 函数的返回值可以是整型、浮点型、字符型等基本类型,也可以是指针类型。如:int*f(),则函数的返回值是一个指向整型数据的指针,称这个函数为返回指针值的函数。 type*(形参表) { …… }//定义了一个返回指针值的函数 void main() { type*p; p=f(实参表);//函数调用,p接收的是函数f返回的指向type类型数据的指针 …… } 2.函数指针 函数名就是函数的入口地址,函数指针就是指向函数入口地址的指针变量,即存放函数入口地址的变量。 type(*p)(type x);//定义了一个名为p的函数指针 type f(type x) { …… }//定义名为f的type函数。 p=f;//将函数f()的入口地址赋给函数指针变量p,即使指针变量p指向函数f(),只能将与函数指针变量具有同类型、同参数的函数名赋给函数指针变量。 四、对象指针 设有一个类A,a和f()分别是类A公有数据成员和公有成员函数,则: A t;//声明了一个类A的对象t,则t是对象t的地址。 A*p;//声明了一个指向类A的指针变量p。 p=t;//将指针变量p指向了类A的对象t。 用指针p调用对象t的数据成员和成员函数的格式为:p→a;和p→f()。 五、类的成员数据指针 设t是A类的一个对象,a是A的一个非静态type型成员数据,s是A的一个静态type1型数据成员,则: 1.①A∷a的相对指针常量为A∷a; ②A∷s的物理指针常量为A∷s。 2.①可以指向A类的type型非静态成员的指针p1的声明格式为:type A∷*p1; ②可以指向A类type型静态成员的指针p2的声明格式为:type1*p2。 3.①使p1指向A∷a的方式为:用 A∷a初始化p1或在声明了p1后向p1赋值; ②使p2指向A∷s的方式为:用 A∷s初始化p2或在声明了p2后向p2赋值。 4.①用p1而不用a来访问t.a的格式为:t.*p1; ②用p2而不用s来访问t.s的表达式为*p2。 六、类的成员函
您可能关注的文档
最近下载
- 2025党校入党积极分子发展对象考试题库(附答案).docx VIP
- 2025至2030年中国铜件阀门行业发展研究报告.docx
- 机械制造技术基础课程设计说明书.doc VIP
- TB 10751-2018 高速铁路路基工程施工质量验收标准 含2024年修改单(3-1).pdf
- 小学植物种植观察记录表.docx VIP
- 2025全球灯塔网络:改变观念提升数字化转型的影响力和规模白皮书.pdf
- 在TransCAD中如何编译和使用定制的VDF动态链接库.doc VIP
- 汽车式起重机吊装安全专项施工方案.pdf VIP
- 5eDnD_凡戴尔的失落矿坑_模组_中译(二校).pdf VIP
- 高考诗歌的比较鉴赏公开课省名师优质课赛课获奖课件市赛课一等奖课件.pptx VIP
文档评论(0)