(第二周项目1)讨论函数参数传递的三种方式

来源:互联网 发布:手机淘宝超链接 编辑:程序博客网 时间:2024/06/06 00:07
//1.传值
#include<stdio.h>void myswap1(int x,int y){    int t;    t=x;    x=y;    y=t;}int main(){    int a,b;    printf("请输入待交换的两个整数:");    scanf("%d%d",&a,&b);    myswap1(a,b);    printf("调用交换函数后的结果是:%d和%d\n",a,b);    return 0;}


传值结果

//2.传地址
#include<stdio.h>void myswap2(int *p1,int *p2){    int t;    t=*p1;    *p1=*p2;    *p2=t;}int main(){    int a,b;    printf("请输入待交换的两个整数:");    scanf("%d%d",&a,&b);    myswap2(&a,&b);    printf("调用交换函数后的结果是:%d和%d\n",a,b);    return 0;}

传地址结果

//3.引用做形参
#include<stdio.h>void myswap3(int &x,int &y){    int t;    t=x;    x=y;    y=t;}int main(){    int a,b;    printf("请输入待交换的两个整数:");    scanf("%d%d",&a,&b);    myswap3(a,b);    printf("调用交换函数后的结果是:%d和%d\n",a,b);    return 0;}

引用做形参结果

总结

传值不能交换,传地址和引用做形参可以交换。

原因第一个另外开启空间后被销毁,第二个将地址所在的值改变,第三个是将自身名字改变再作交换。

心得

理解并记住关于交换的知识。

0 0
原创粉丝点击