版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jerryhanjj/article/details/70248119
代码
#include<iostream>
using namespace std;
// 函数指针
void (*pfun)(int *);
// 重定义函数指针
typedef void (*pFun)(int &);
// 指针函数
int * sub(int *a, int *b)
{
int * s;
int c;
c = (*a)+(*b);
s = &c;
return s;
}
void test(int a)
{
a += 1;
}
void test_1(int * a)
{
*a = *a+1;
}
void test_2(int &a)
{
a = a+1;
}
void test_3(pFun pfun, int &a)
{
pfun(a);
}
int main(void)
{
int *p;
int a = 3, b = 4;
p = sub(&a, &b);
cout<<"a+b="<<*p<<endl;
test(a);
cout<<"a = "<<a<<endl;
test_1(&a);
cout<<"a = "<<a<<endl;
test_2(a);
cout<<"a = "<<a<<endl;
test_3(test_2, a);
cout<<"a = "<<a<<endl;
pfun = test_1;
(*pfun)(&a);
cout<<"a = "<<a;
return 0;
}
运行结果
a+b=7
a = 3
a = 4
a = 5
a = 6
a = 7