C++传值,传引用,传地址的区别

标签: C 传值 传引用 传地址
1人阅读 评论(0) 收藏 举报
分类:

    按值传递时,因为a和b是S1和S2的两个副本,所以改变的是a和b的值,S1和S2的值并未发生交换,按引用传递时,a和b就是S1和S2,只是名称不同而已,所以交换a和b的值的时候也就交换了S1和S2的值。对于按指针传递的时候,a和b是S1和S2的地址,交换时就是交换*a和*b所指的值,所以交换也是成功的。

#include <iostream>
using namespace std;

void swap0(int a,int b)
{
    int temp;
    temp=a;
    a=b;
    b=temp;
}

void swap1(int &a,int &b)
{
    int temp;
    temp=a;
    a=b;
    b=temp;
}

void swap2(int *a ,int *b)
{
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
}

int main()
{
    int s1,s2;
    s1=111;
    s2=222;
    swap0(s1,s2);
    cout<<"swap0结果:";
    cout<<s1<<" ";
    cout<<s2<<endl;

    s1=111;
    s2=222;
    swap1(s1,s2);   //注意用法
    cout<<"swap1结果:";
    cout<<s1<<" ";
    cout<<s2<<endl;

    s1=111;
    s2=222;
    swap2(&s1,&s2);
    cout<<"swap2结果:";
    cout<<s1<<" ";
    cout<<s2<<endl;

    return 0;
}
swap0结果:111 222
swap1结果:222 111
swap2结果:222 111


查看评论

C++中传值、传址与传引用的区别

1、参数传递的概念  所谓参数传递就是用函数调用所给出的实参(实际参数)向函数定义所给出的形参(形式参数)设置初始值的过程。 在c++中,调用函数时有三种参数传递方式,分别为: (1)传值调用;...
  • Silence723
  • Silence723
  • 2016-07-19 10:07:55
  • 1825

c++中参数传递的三种方式,以及用法。传值,传址,传引用

#include void add(int *x,int *y) {  *x=*x+10;  *y=*y+10; } void aaa(int &c,int &d) {  c=c+...
  • zhangdong7514280095
  • zhangdong7514280095
  • 2011-11-18 11:14:58
  • 1673

传值,传指针和传引用区别和联系

C++写了很多年,有一天,写着写着代码。竟然自己发现对传值,传指针,传引用这个每天都在用的传递方式的区别还不是很清楚。以为自己懂了,其实还理解得还不够深入,基础还需要花时间琢磨。今天参考了很多篇博客和...
  • zx3517288
  • zx3517288
  • 2016-11-27 12:15:28
  • 1761

举例说明:传值引用与传地址引用的区别

 class BirthDay...{     private int day;     private int month;     private int year;          Birth...
  • phuwan
  • phuwan
  • 2007-03-24 13:17:00
  • 1352

传值和传引用、传指针的区别

c语言中所有传递给函数的参数
  • a15994269853
  • a15994269853
  • 2014-04-18 09:50:51
  • 11115

C++:C++方法(函数)传参,传值,传址,传引用的之间的区别,什么时候用那个好一点

C++中函数传参: 1).按值传递(pass by value) value 2).地址传递(pass by pointer) *value 3).引用传递(pass by ref...
  • sinat_36101354
  • sinat_36101354
  • 2017-03-28 17:48:25
  • 541

C/C++的值传递,指针传值和引用传值的区别

首先让我们来看下面几个代码:
  • zhushh
  • zhushh
  • 2014-11-03 12:07:15
  • 2290

C++传值&传指针&传引用

我同学看见我的电脑都说我浏览器开太多了,忍不住要帮我关掉,但是宝宝一个窗口是写博客,一个窗口写javascript,一个窗口写算法,虽然每个都开了十几个,但是条理很清晰啊,没毛病!C++传参数的三种方...
  • tingyugetc11
  • tingyugetc11
  • 2017-03-23 14:27:21
  • 906

C/C++语言函数参数传递:传值,传指针,传引用

前面我们介绍了函数的调用约定,明白了函数调用者与被调用者之间传递参数的顺序与如何进行栈恢复的。 实际上,函数调用者如何将参数传递给被调用者也是有讲究的。 总的来说,函数参数传递分为3种情况:传值,传指...
  • u012713968
  • u012713968
  • 2016-01-08 14:50:51
  • 633

Java中传值和传引用的区别

声明:此文是作为本人自己学习的心得与总结,同时也是与同学们进行交流,如果有错误的地方,希望同学们进行指正        在这里,要想搞清楚二者的区别,那么首先明白两个概念,“传值”、“传引用”。   ...
  • sunguoqingufo
  • sunguoqingufo
  • 2016-02-21 14:26:34
  • 5074
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 94万+
    积分: 1万+
    排名: 1112
    博客专栏
    最新评论