项目1——C/C++语言中参数传递的三种方式

//(3)引用作形参
#include<iostream>
void myswap(int &x, int &y)
{
    int t;
    t=x;
    x=y;
    y=t;
}
int main()
{
    int a, b;
    printf("请输入待交换的两个整数:");
    scanf("%d %d", &a, &b);
    myswap(a,b);  //分三个程序,分别写上调用myswap的合适形式
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
    return 0;
}
//(2)传地址
#include<iostream>void myswap(int *p1, int *p2){ int t; t=*p1; *p1=*p2; *p2=t;}int main(){ int a, b; printf("请输入待交换的两个整数:"); scanf("%d %d", &a, &b); myswap(&a,&b); //分三个程序,分别写上调用myswap的合适形式 printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0;}
//(1)传值
#include<iostream>
void myswap(int x, int y)
{
    int t;
    t=x;
    x=y;
    y=t;
}
int main()
{
    int a, b;
    printf("请输入待交换的两个整数:");
    scanf("%d %d", &a, &b);
    myswap(a,b);  //分三个程序,分别写上调用myswap的合适形式
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
    return 0;
}

使用传值方法调用函数时,交换不成功,所交换的是x和y的值,即形式参数,对于要交换的a和b是无效的。

使用传地址的方法调用函数时,所调用的是a和b的地址&a和&b,x和y分别作为指针指向a和b。执行过程中,t赋值为x指向的值,使得t=x,x所指向的值赋值为y指向的值,y指向的值赋值为t。
使用引用作形参方法调用函数时,加入引用数据类型,原来的a,b,对形式参数x,是a的引用,x与a所占内存相同,同理。y与b所占内存相同,所以在交换过程中,是交换了x和y所占用的空间,即交换了a和b。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值