传递可变参数

本文探讨了C++和Java中参数传递的不同机制。在C++中,通过指针或引用可以实现参数值的更改并返回给调用者。而在Java中,尽管参数传递采用值传递方式,但可以通过对象引用在方法内部修改对象状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传递可变参数
传统的c中,函数在调用时参数是通过值来传递的,这就是说函数的参数不具备返回值的能力。
所以在传统的c中,如果需要函数的参数具有返回值的能力,往往是通过 指针来实现的。比如,实现
两整数 变量值交换的c程序如下:
void swapint(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
使用引用机制后,以上程序的c++版本为:
void swapint(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
调用该函数的c++方法为:swapint(x,y); c++自动把x,y的地址作为 参数传递给swapint函数。
============================================================================================================
Java中参数传递全是值传递,没有引用传递。参数会在方法内创建一个副本,如果参数为对象引用,即对象所在内存堆中的地址,那么可以在方法内,通过这个地址修改地址中的原对象,但是原对象引用类型的参数,指向的地址不变,即不会改变参数的值。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值