相关疑难解决方法(0)

通过指针传递并通过引用传递

可能重复:
C++中指针变量和引用变量之间有什么区别?
在C++中通过引用传递指针是否有好处?

在这两种情况下,我都取得了成果.那么什么时候优先于另一个呢?我们使用其中一个的原因是什么?

#include <iostream>
using namespace std;
void swap(int* x, int* y)
{
    int z = *x;
    *x=*y;
    *y=z;
}
void swap(int& x, int& y)
{
    int z = x;
    x=y;
    y=z;
}

int main()
{
    int a = 45;
    int 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";

    swap(a,b);
    cout<<"After Swap with pass by reference\n";
    cout<<"a="<<a<<" b="<<b<<"\n";
}
Run Code Online (Sandbox Code Playgroud)

产量

Before Swap
a=45 b=35
After Swap with pass by pointer …
Run Code Online (Sandbox Code Playgroud)

c++ pointers reference parameter-passing

42
推荐指数
2
解决办法
10万
查看次数

编译器是否优化了值传递的函数参数?

假设我有一个函数,其中参数通过值而不是const-reference传递.此外,假设在函数内部仅使用该值,即函数不会尝试修改它.在这种情况下,编译器是否能够确定它可以通过const-reference传递值(出于性能原因)并相应地生成代码?是否有任何编译器可以做到这一点?

c++ compiler-construction optimization

19
推荐指数
2
解决办法
3222
查看次数