c++函数参数

来源:互联网 发布:windows 7系统镜像包 编辑:程序博客网 时间:2024/06/08 04:03

如果函数要使用参数,则必须声明接受参数值的变量,这些变量称为函数的形式参数

形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁

当调用函数时,有三种向函数传递参数的方式


传值调用

该方法把参数的实际值复制给函数的形式参数,在这种情况下,修改函数的形式参数对实际参数没有影响

默认情况下,c++使用传值调用方法来传递参数,一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数,函数swap()定义如下:

void swap(int x,int y)

{

int temp;

temp=x;

x=y;

y=temp;

}

虽然在函数内改变了xy的值,但是实际上xy的值并没有变化


指针调用

该方法把参数的地址复制给形式参数,在函数内,该地址用于访问调用中要用到的实际参数,这意味着,修改形式参数会影响到实际参数

按指针传递值,参数指针被传递给函数,就像传递其他值给函数一样,因此相应的,在下面的函数swap()中,用户需要声明函数参数为指针类型,该函数用于交换参数所指向的两个整数变量的值

void swap (int *x,int *y)

{

int temp;

temp=*x;

*x=*y;

*y=temp;

return ;

}


引用调用

该方法把参数的地址复制给形式参数,在函数内,该引用用于访问调用中要用到的实际参数,这意味着,修改形式参数会影响实际参数

按引用传递值,参数引用被传递给函数,就像传递其他值给函数用于,因此相应的,在swap()中,用户需要声明函数参数为引用类型,该函数用于交换参数所指向的两个整数变量的值

void swap (int &x,int &y)

{

int temo;

temp=x;

x=y;

y=temp;

return;

}

现在,通过引用传值来调用函数swap()

#include <iostream>

using namespace std;

void swap (int &x,int &y)

int main ()

{

int a=100;

int b=200;

cout<<"交换前a,b="<<a<<","<<b<<endl;

swap (a,b);

cout<<"交换后a,b="<<a<<","<<b<<endl;

return 0;

}

显示结果

交换前a,b=100,200

交换后a,b=200,100


1 0
原创粉丝点击