C++语言程序设计中函数指针论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++语言程序设计中函数指针的分析与研究摘要:指针作为c++语言程序设计中的一个重要概念,其应用也是c++语言程序设计中的非常重要的一个内容。
指针作为一种特殊的数据结构类型,它可以有效地表示数据之间复杂的逻辑结构关系。
灵活正确地运用指针可以给程序的设计带很多的便捷,其中效果最为显著的就是函数指针的应用,通过使用函数指针,可以在调用函数时可以获得多个返回值以及实现对内存地址的直接处理等。
本文从对c++语言程序设计中的函数指针的介绍谈起,然后详细说明了使用c++语言程序设计函数指针需要注意的问题,最后就c++语言程序设计中函数指针的应用技巧进行了系统的分析。
关键词:c++语言程序设计;函数指针;分析研究
中图分类号:tp311.11 文献标识码:a文章编号:1007-9599 (2011) 24-0000-01
analysis and research of function pointers for c++ language programming
zhang suxia
(shandong rural credit cooperatives,qingdao266550,china) abstract:pointer as c++ language programming is an important concept,its application is the c++ programming language is very important content.pointer as a special type of data structure,which can effectively express complex data between the logical structure of the relationship.flexible
and correctly use the pointer to the design of the program with a lot of convenience,the application of which the most significant effect is a function pointer,by using the function pointer,you can call the function can get multiple return values,and to deal directly with memory addresses and so on.this article from the introduction of c++ language program design,function pointer to talk about,and then a detailed description of the use of c++ language program design function pointers need to pay attention to the,the final c++ language program design,function pointers application techniques carried out a systematic analysis.
keywords:c++ language programming;function
pointer;analysis
一、认识c++语言程序设计中的函数指针
(一)指针与函数。
在c++语言程序设计中,将指针与函数结合在一起使用具有非常丰富的内涵。
比如说,可以把指针作为函数的参数来使用,也可以把指针作为函数的返回值,另外,指针可以指向函数成为函数指针等。
在c++语言程序设计中,用指针作函数的参数,从而实现地址传参的调用。
而所谓的调用就是系统自动将实参地址的值赋给其所对应的形参指针,从而使形参指针指向实际参数变量。
这样一来,形参在函数体内的变化,将会直接影响到调用函数中与之对应的实参的值。
(二)区别指针函数与函数指针的概念。
由于函数的类型是按照函数返回值的类型来定义的,所以把返回值为指针类型的函数称为指针函数。
其中需要说明的是如果使用某变量的地址来充当函数的返回值的话,还需要考虑地址所对应的变量空间是否还在被占用,若地址空间已经被释放掉,那么其中的数据就有可能发生了变化,这样的话就需要将相应的变量设置为静态变量,否则的话,就不能实现正确传递参数的效果。
还有一点要说明的就是在使用指针函数时,必须把接收函数值的变量设置为指针,而且其数据类型必须与返回值的数据类型相同。
由于指针变量不仅可以指向不同的数据类型,同时还可以指向函数,其中把指向函数入口地址的指针称为函数指针。
函数指针作为c++语言程序设计中函数与指针结合应用的一个重要概念,函数指针的作用就是用来在函数间进行函数参数的传递。
在c++语言程序设计中常常会把指针函数与函数指针两个概念混淆起来,实际上,明白二者的实质后,二者完全是两个不同的概念,其最为显著的区别就在于函数指针中的指针是指向函数入口的,而指针函数中的指针是指向函数出口的,所以在使用时一定要把握好二者的区别,正确使用。
二、使用c++语言程序设计函数指针需要注意的问题
尽管函数指针的使用可以为程序设计带来很多的方便,但是由于指针变量自身存在的缺陷,所以在使用中如果不小心的话就会出现错误,严重的话就可能导致系统的崩溃,所以这里有必要就c++
语言程序设计函数指针应用中经常出现的问题进行说明。
第一、指针变量初始值的赋值问题。
尽管指针变量是指向的是相应数据变量的存储地址,但是在使用该指针变量前必须对指针变量的初值进行赋值,如果不对其赋值的话,系统就会随机对其进行赋值,显然,这就会导致比较严重的错误。
第二、指针变量所指对象的存储单元单元分配问题。
在对指针变量所指的对象进行赋值时需要为其所指的对象分配充足的存储单元,如果存储单元分配不足的话也将会发生一系列的错误。
第三、在操作前不对指针的值是否为空就进行操作的问题。
对于一个值为空的,它的值为空的指针类型变量而言,它是不指向任何变量的,如果强制对它进行操作的话,就可能会出现如下的几种情况:一是禁止读写;二是只允许读而不允许写;三是既允许读又允许写的三种不合法的存储区域赋值问题,显然,这一问题所造成的错误势必会非常严重。
第四、函数按地址引用时参数的误用问题。
函数参数的引用包括按值引用和按地址引用两种不同的引用方式,其中按值引用的是数值而按地址引用的是地址,二者是不一样的,一定要区分开来,不能混淆。
三、c++语言程序设计中函数指针的应用技巧分析
函数指针作为一种具有特殊用途的指针,它广泛的应用于c++语言程序设计中。
其中c++语言程序设计中的函数指针主要用于调用函数以及充当函数的参数这两个方面。
而c++语言程序设计中函
数指针的应用是有技巧的,其使用技巧如下:
第一、多态机制的实现。
在c++语言程序设计中使用函数指针来实现多态机制是比较复杂的,其中主要是通过虚函数表来实现的,其中虚函数表中存放的就是由函数指针组成的数组,由这些函数指针来指向实际所要调用的函数。
第二、回调函数。
所谓的回调函数可以这样的来理解,如果把某个函数的指针作为参数将其传递给另一个函数时,当这个指针用来指向函数时,就是回调函数。
在c++语言程序设计中回调函数应用的比较广泛,举个例子,譬如win32程序设计中的winproc其实就是一种回调函数,它主要是用来处理窗口的相关消息。
第三、取代分支语句。
分支语句在程序维护上往往具有一定的限制,然而函数指针的应用可以很好的解决这一问题。
参考文献:
[1]张海平.c/c++语言中函数指针的深入分析与应用[j].软件开发与设计,2009(22)
[2]杜邵敏.c++语言中函数指针的应用分析[j].内蒙古大学学报,2009(02)
[3]李国敏.浅谈c++语言中指针的应用[j].安阳工学院学
报,2010(06)。