注册 登录
编程论坛 C++教室

第一个参数是引用传值的方式,第二个参数是按值传递。求问为什么第一个是双向的,第二个是单向的?

蛤蟆001 发布于 2016-09-09 01:13, 2645 次点击
#include<iostream>
void fun(int &x,int y)
{
int t=x;x=y;y=t;
}
int main()
{
int a[2]={23,42};
fun (a[1],a[0]);
std ::cout <<a[0] <<"," <<a[1] << std::endl;
return 0;
}
麻烦以这个例题给我讲解一下
3 回复
#2
rjsp2016-09-09 08:37
什么单向的双向的,这些基础知识找本书看看就知道了

C++的
void fun( int& x, int y )
{
    x = 1;
    y = 2;
}
int main( void )
{
    int a=0, b=0;
    fun( a, b );
}
相当于C的
void fun( int* x, int y )
{
    *x = 1;
    y = 2;
}
int main( void )
{
    int a=0, b=0;
    fun( &a, b );
}
#3
BBOY愿愿2016-09-09 12:48
这个简单

前者是地址   能通过地址改变原始的值
后者是变量   通过值传递的方式  将实参传给形参  这不能改变原始的值   
你学 了指针就知道  这是怎么回事了
#4
蛤蟆0012016-09-10 00:13
谢谢大家!
1