C++ 按地址(指针)调用和按引用调用之间的差异

C++ 按地址(指针)调用和按引用调用之间的差异,c++,C++,你能告诉我来源1和来源2的区别吗? 书中说第一个是通过addresspointer调用,第二个是通过引用调用,但我没有确切地得到这两个来源。 请向我解释一下这些来源,谢谢 一, 二, 就CPU级别发生的事情而言,指针和引用是完全相同的。不同之处在于编译器,它不允许您对引用执行删除操作,并且类型更少 因此,在您的代码中,两个函数的作用相同。您也可以参考 #include <iostream> using namespace std; void absolute(int *a); vo

你能告诉我来源1和来源2的区别吗? 书中说第一个是通过addresspointer调用,第二个是通过引用调用,但我没有确切地得到这两个来源。 请向我解释一下这些来源,谢谢

一,

二,


就CPU级别发生的事情而言,指针和引用是完全相同的。不同之处在于编译器,它不允许您对引用执行删除操作,并且类型更少

因此,在您的代码中,两个函数的作用相同。

您也可以参考
#include <iostream>
using namespace std;

void absolute(int *a);
void main()
{
    int a = -10;
    cout << "Value a before calling the main function = " << a << endl;
    absolute(&a);
    cout << "Value a after calling the main function = " << a << endl;
}
void absolute(int *a)
{
    if (*a < 0)
        *a = -*a;
}
#include <iostream>
using namespace std;

void absolute(int &a);
void main()
{
    int a = -10;
    cout << "Value a before calling the main function" << a << endl;
    absolute(a);
    cout << "Value a after calling the main function" << a << endl;
}
void absolute(int &a)
{
    if (a < 0)
        a = -a;
}