c++ 函数指针与指针函数

  这些天,学习了C++,现把学习过程中的心得记录如下,主要是备忘,如果不小心能帮助人,那是更好。。

  函数指针与指针函数的区别,单从字面上,我们可以这样理解,函数指针,本质上是一个指针;指针函数,本质上是一个函数。 

  那我们先来说一下函数指针吧,既然是一个指针,那就是存放一个地址。在c++ 中,变量,数组都会有一个地址,函数也不例外哦,一般来说,函数名就代表着这个函数的首地址的指针,那函数指针的作用就是用来存放这个地址的。这个时候应该会有人问,把这个地址存起来有什么用呢?这个。。我也是在学习中,等我完全理解透了,再来说。

      我现在接下来来说一下,怎么用这个函数指针。

 

#include <cstdlib>
#include 
<iostream>

using namespace std 

/*
自定义函数指针的格式
typedef 返回类型  (*类型名称)(参数列表) 
*/
typedef 
void (*rsastring) (char *);//只是声明一个函数指针的类型,并不是一个变量 

/*
自定义一个函数 声明的返回值,参数列表与 函数指针的声明是一个的,这样才能指向 
*/
void ptest(char *msg)
{
     std::cout
<<msg<<std::endl;
}

int main(int argc, char *argv[])
{    
    rsastring ap 
= ptest;//定义一个rsastring 的变量 ap 变为其赋值 ptest 
    
    (
*ap)("junda.chen");//调用 
    
    system(
"PAUSE");
    
return EXIT_SUCCESS;

} 

 

代码
#include <cstdlib>
#include 
<iostream>

using namespace std 

/*
自定义函数指针的格式
typedef 返回类型  (*类型名称)(参数列表) 
*/
typedef 
void (*rsastring) (char *);//只是声明一个函数指针的类型,并不是一个变量 

/*
自定义一个函数 声明的返回值,参数列表与 函数指针的声明是一个的,这样才能指向 
*/
void ptest(char *msg)
{
     std::cout
<<msg<<std::endl;
}

int main(int argc, char *argv[])
{    
    rsastring ap 
= ptest;//定义一个rsastring 的变量 ap 变为其赋值 ptest 
    
    (
*ap)("junda.chen");//调用 
    
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}

 

 

 

 

posted on 2009-12-21 00:42  Junda.chen  阅读(1704)  评论(0编辑  收藏  举报

导航