首页 > 其他 > 详细

值传递问题

时间:2019-04-27 20:10:12      阅读:152      评论:0      收藏:0      [点我收藏+]

常见的值传递包括:数值传递、地址传递和引用传递,其中数值传递不改变实参内容,函数调用过程中会为中间变量赋予内存空间,调用结束后释放;地址传递可以对实参内容进行改变,同样涉及空间分配释放问题;引用传递则直接对实参进行操作,不需要再进行内存的重新分配。

int x,y;
//数值传递
swap1(int x,int y)
{
    int t;
    t=x;
    x=y;
    y=t;      
}
//地址传递
swap2(int *p1,*p2)
{
    int *temp;
    *temp=*p1;
    *p1=*p2;
    *p2=*temp;  
}
//引用传递
swap3(int &x,int &y)
{
    int t;
    t=x;
    x=y;
    y=t;    
}

void main()
{
    int x,y;
    int *p1,*p2;
    p1=&x;p2=&y; 
    printf("输入两个数字:\n");
    scanf("%d%d",&x,&y);
    printf("x=%d\ty=%d\n",x,y);
    swap1(x,y);
    swap2(p1,p2);
    swap3(x,y);
}

 

值传递问题

原文:https://www.cnblogs.com/Magicbobobo/p/10779940.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!