C++从零开始之指针及其语义和运用
的名字也无法找到人。这是因为引用是“间接”的一部分,在《C++从零开始(十一)下篇》中说明了何谓间接,指出其三大优点——简化操作、提高效率(从某方面)和增加灵活性,下面说明。
用手机和某人谈话是通过手机间接和那人谈话;看风景照是通过照片间接观看风景;商品卖出是通过销售员间接卖出去的(不是老板亲自卖的)。即有一个“原始手段”可以达到目的,有一个“高级手段”能操控那个“原始手段”,则通过使用“高级手段”来达到目的称作间接,而“高级手段”的配置信息(说明如何使用“高级手段”)就是引用。所谓的手段就是某种方法或功能,而方法的配置信息用于完善方法的运用。如讲话是个方法,而讲话的人就是引用,即人引用了讲话,表示只要拥有个人,就可以实现讲话。“声音传到人的耳朵里”是“原始手段”,“手机能传递声音并使其传到人的耳朵里”是“高级手段”,“手机号码”决定手机如何传递声音(传给哪个手机):“风景反射的光线进入眼睛”是“原始手段”,“照片反射的光线进入眼睛”是“高级手段”,“照片”决定如何反射光线:“销售员能把商品卖出”是“原始手段”,“销售员能被命令卖出商品”是“高级手段”,“销售员”决定了如何命令销售员卖商品(命令哪个)。“手机号码”引用了“和某人谈话”:“照片”引用了“风景”:“销售员”引用了“卖出商品”。 应注意引用自身也是一种资源,其可以被操作,当它被修改时,对于同一个“高级手段”的执行,将得到不同的结果,因此间接能提高灵活性。即之所以能提高灵活性,是因为“高级手段”的可配置,如果不可配置则间接无法提高灵活性。 还应注意“原始手段”可能是另一个间接中的“高级手段”,如A向B要钱,B命令C卖商品以得到钱,即间接的间接。如果两级间接的“高级手段”都可配置,则此二级间接的灵活性将可能高于一级的间接(只是可能,要视“可配置”这个功能是否被运用)。 间接一定降低效率。因为原来一个“原始手段”即可达到目的,现在却要施行“高级手段”和“原始手段”两个手段才能达到目的。那要间接有何意义?必定因为“高级手段”在某方面优于“原始手段”。如施行方面以达到简化操作,如MFC中的窗口包装类CWnd;使用方面通过“高级手段”的可配置以提高灵活性;无法施行“原始手段”而需借助“高级手段”,如A没时间而派B去跟客户洽谈;管理方面为“高级手段”赋于一定的意义以简化管理,等同于归类分层,如营销部卖商品而不是销售员卖商品。 指针的语义——引用 上面说那么多,到底关指针什么事?指针的语义就是引用。在《C++从零开始》系列中已说明,程序即方法的描述,方法即说明如何操作资源,在C++中能被操作的资源只有数字,数字以其类型所决定的规则存放在一块内存中,内存块是通过其首地址来标识的。而前面已说地址类型的数字的计算将进行取内容操作,指针类型的数字的计算则不取内容,直接返回地址,即指针类型的数字就是一个地址,而地址是C++中唯一能操作的资源——数字——被存放的位置,即其是某块内存块的引用。 指针既然被称作引用也就带入了间接。数字的计算(即按数字的类型定义的规则来返回相应的二进制数) |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |