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;
}
#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 阅读(1706) 评论(0) 编辑 收藏 举报