C++函数传参、函数指针的定义以及调用

来源:互联网 发布:isp图像处理编程 编辑:程序博客网 时间:2024/05/01 19:01

方法

  • 声明

    bool (*bigger)(const int& a, const int& b);

    需要说明函数的传参以及返回值类型。

  • 赋值

    bigger = BiggerThan;

    或者

    bigger = &BiggerThan;

    可以通过函数的名称或地址赋值。

  • 调用

    bigger(3,4)(*bigger)(5, 2)

    上面2种方法都行

代码

#include<iostream>#include<exception>using namespace std;bool BiggerThan(const int& a, const int& b){    return a > b;}int main(){    cout << "start!" << endl;    bool (*bigger)(const int& a, const int& b);    bigger = BiggerThan;    cout << bigger(2,1) << endl;    bigger = &BiggerThan;    cout << bigger(3,4) << endl;    cout << (*bigger)(5, 2) << endl;    cout << "end!" << endl;    system("pause");    return EXIT_SUCCESS;}

函数传参

  • 值类型传递的时候,在函数中修改该值之后,值仍然不会改变,但是引用传递的话,会发生改变
  • intfloat、等都是值类型,但是数组、类等就是引用类型,如果不想让函数修改引用类型的变量,可以在前面加上const限定符,如果要将值传递类型的变量改变为引用传递,在函数传参的定义前面加上&就行。

代码

#include<iostream>#include<exception>using namespace std;bool BiggerThan(const int& a, const int& b){    return a > b;}void RefTest(int &a){    a++;}void RefTestArray(int a[]){    a[0] = 22;}int main(){    cout << "start!" << endl;    int b = 1;    cout << b << endl;    RefTest(b);    cout << b << endl;    cout << "array : " << endl;    int c[3] = {3,4,5};    cout << c[0] << endl;    RefTestArray( c );    cout << c[0] << endl;    cout << "end!" << endl;    system("pause");    return EXIT_SUCCESS;}
0 0
原创粉丝点击