函数参数传递的三种基本方式

来源:互联网 发布:php curl 异步请求 编辑:程序博客网 时间:2024/06/10 18:52
//============================================================================
// Name        : Test_Reference_Pointer_Transmit_Fuction.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : 这个程序主要 测试 引用的作用 和函数 指针的传递
//============================================================================
//形参:用于接收传递值的变量。 实参:传递给函数的值。
/* (1)、将变量名作为实参和形参。传递给形参的的时变量的值,传递是单向的。在函数内部,经过运算后,
 *      形参的值改变之后,并不能传递回实参。这里的根本原因就是形参和实参不是同一个存储单元。
 *(2)、传递变量的指针。形参是指针变量,实参是一个变量的地址,调用函数时,形参指向实参变量单元
 * 总结:(1)和(2)都是值传递,(1)传递的时值的直接传递 (2)传递的是地址值的传递,就是将原来
 *       原来的数据的地址传递到形参。其实质都是值传递的方式。是c语言的标准方式
 *(3)、引用型变量作为函数的形参是C++的独有传递方式。引用就是给一个变量声明另一个别名,而不是变量地址。
 */
#include <iostream>
#include<iomanip>
using namespace std;


int main() {
cout << "!!!Test_Reference_Pointer_Transmit_Fuction!!!" << endl; // prints
/************************************************************************************/
int a;
a=10;
//声明引用变量的时候,必须要同时使之初始化。
int &m=a;//这里的意义就是:变量b具有变量a的地址。他的值并不是地址值,不是取地址的意思。引用的初始化 只能用一次哦!!!
//引用的重要作用在于 作为函数的参数传递。
    a=a*a;
    cout<<a<<setw(6)<<m<<endl;//这里 a的值改变 则m的值也将会改变
/******************************变量名作为实参和形参************************************/
    void swap1(int, int);
    int i=3,j=5;
    swap1(i,j);
    cout<<i<<setw(6)<<j<<endl;
/********************************传递变量的指针*************************************/
    void swap2(int *,int *);
    int  p=3,q=5;
    swap2(&p,&q);
    cout<<p<<setw(6)<<q<<endl;
/******************************引用的传递******************************************/
    void swap3(int &,int &);
    int z=3,x=5;
    swap3(z,x);
    cout<<z<<setw(6)<<x<<endl;
/********************************************************************************/
return 0;
}
/**************************函数声明*********************************************/
void swap1(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void swap2(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;


}
void swap3(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
原创粉丝点击