在C++中指针和引用传值区别

原创 2017年06月05日 13:49:05

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。

CSDN视频网址:http://edu.csdn.net/lecturer/144

在C ++中,我们可以通过指针或引用将参数传递给函数 在这两种情况下,我们可以得到相同的结果。 所以下列问题是不可避免的: 什么时候是优先于另一个?

Passing by Pointer

#include <iostream>
using namespace std;
 
void swap(int* x, int* y)
{
    int z = *x;
    *x = *y;
    *y = z;
}
 
int main()
{
    int a = 45, b = 35;
    cout << "Before Swap\n";
    cout << "a = " << a << " b = " << b << "\n";
 
    swap(&a, &b);
 
    cout << "After Swap with pass by pointer\n";
    cout << "a = " << a << " b = " << b << "\n";
}

Output:

Before Swap
a = 45 b = 35
After Swap with pass by pointer
a = 35 b = 45


Passing by Reference


#include <iostream>
using namespace std;
void swap(int& x, int& y)
{
    int z = x;
    x = y;
    y = z;
}
 
int main()
{
    int a = 45, b = 35;
    cout << "Before Swap\n";
    cout << "a = " << a << " b = " << b << "\n";
 
    swap(a, b);
 
    cout << "After Swap with pass by reference\n";
    cout << "a = " << a << " b = " << b << "\n";
}

Output:

Before Swap
a = 45 b = 35
After Swap with pass by reference
a = 35 b = 45

引用变量和指针变量的区别

引用通常使用指针来实现 引用是相同的对象,只是使用不同的名称引用必须引用一个对象。 由于引用不能为NULL,所以它们更安全。
1、指针可以重新分配,而引用不能,只能在初始化时分配。
        2、指针可以直接分配NULL,而引用不能。
3、指针可以遍历数组,我们可以使用++去指向下一个项。
        4、指针是保存内存地址的变量, 引用具有与引用的项相同的内存地址。

5、指向类/ 结构体的指针使用' - >'(箭头运算符)来访问它的成员,而引用使用'.'(点运算符)。








版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++ Data Structure 学习笔记 (2011.5.3)——传值,指针,引用的区别及Vector与String的详细用法

今天学的第一个内容是传值,传引用的问题。在Mark Weiss的书中,他非常简明扼要的对此作了说明:Call by reference is required for objects that may...

C++中引用、指针,传值的联系和区别

本文简述了引用、指针、传值的的联系和区别,还说明了pass by value和pass by reference的区别,并附上大量代码进行举例说明...

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

首先让我们来看下面几个代码:
  • zhushh
  • zhushh
  • 2014年11月03日 12:07
  • 1504

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

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

C++学习笔记(1)之传值、传指针、传引用的区别

1.引用和指针的区别:引用定义就要初始化、引用初始化后不能引用其他的引用、不能给引用赋空值,引用具有 1)不占空间  2)效率 3)安全优点 2.什么时候使用指针,什么时候又该使用引用? 指针和引...

从汇编和高级语言的角度理解传值方式,传值,传引用,传指针的本质机制与区别。白话通俗易懂。

函数的传参与返回值的方式有传值和传递引用,c语言中就是传值,而c++扩展传引用。 而传值分为传递值(实参的值,此时形参是实参在内存中的一份拷贝,形参在使用时分配内存,结束时释放,实参和形参在内存中的...

C/C++中函数的传值调用、指针调用、引用调用问题

以swap函数来说明问题:   #include #include void swap1(int a, int b) { int temp; temp=a; a=b; ...

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

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

【C/C++语法外功】传值&传引用&传指针

相关概念 c++三种传递参数方式 传参数的值(称值传递,简称传值),传参数的地址(称地址传递,简称为传址),和引用传递(称为传引用),相应的函数传值调用,传址调用和传引用调用 形...
  • redouba
  • redouba
  • 2014年03月13日 14:02
  • 1232
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在C++中指针和引用传值区别
举报原因:
原因补充:

(最多只允许输入30个字)