在C++中指针和引用传值区别
2017-06-05 13:49
225 查看
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。CSDN视频网址:http://edu.csdn.net/lecturer/144 在C ++中,我们可以通过指针或引用将参数传递给函数, 在这两种情况下,我们可以得到相同的结果。 所以下列问题是不可避免的: 什么时候是优先于另一个?
Output:Before Swap
a = 45 b = 35
After Swap with pass by pointer
a = 35 b = 45
a = 45 b = 35
After Swap with pass by reference
a = 35 b = 45
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++
- C++ 指针与引用的区别
- C++中指针和引用的区别
- c++中引用和指针的区别
- [More Effective C++]条款一:指针与引用的区别
- c++中的引用与指针的区别
- C++中指针和引用的区别
- (转)C++中指针和引用的区别
- C++点滴:向函数中传递指针和传递指针的引用的区别:
- 【C++】指针与引用的区别
- c++中,引用和指针的区别
- C++中引用和指针的区别
- More Effective C++:指针与引用的区别
- c++中引用和指针的区别
- java中的引用和C++中的指针的区别
- C++中指针和引用的区别
- C++ 的引用 指针和引用的区别
- 重新巩固C++指针和引用的区别
- C++中引用和指针的两个重要区别
- C++中指针和引用的区别