当前位置:  开发笔记 > 编程语言 > 正文

func(int&param)和func(int*param)之间有什么区别?

如何解决《func(int&param)和func(int*param)之间有什么区别?》经验,为你挑选了1个好方法。

在下面的代码,都amp_swap()star_swap()似乎是在做同样的事情.那么为什么有人喜欢使用一个而不是另一个呢?哪一个是首选符号,为什么?或者只是品味问题?

#include 

using namespace std;

void amp_swap(int &x, int &y)
{
    int temp = x;
    x = y;
    y = temp;
}

void star_swap(int *x, int *y)
{
    int temp = *x;
    *x = *y;
    *y = temp;
}

int main()
{
    int a = 10, b = 20;
    cout << "Using amp_swap(): " << endl;
    amp_swap(a, b);
    cout << "a = " << a << ", b = " << b << endl;
    cout << "Using star_swap(): " << endl;
    star_swap(&a, &b);
    cout << "a = " << a << ", b = " << b << endl;
    return 0;
}

谢谢你的时间!


也可以看看

C++中指针变量和引用变量之间的区别



1> Mark Ingram..:

一个是使用引用,一个是使用指针.

我会使用带引用的那个,因为你不能传递一个NULL引用(而你可以传递一个NULL指针).

所以,如果你这样做:

star_swap(NULL, NULL);

您的应用程序将崩溃.如果您尝试:

amp_swap(NULL, NULL); // This won't compile

除非你有充分的理由使用指针,否则总是使用引用.

请参阅此链接:http://www.google.co.uk/search?q = references + vs +指针

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有