C 函数指针 参数传递

来源:互联网 发布:巨型海报打印软件 编辑:程序博客网 时间:2024/05/21 17:21

代码


#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

这里写图片描述

0 0