你能告诉我1和2之间的区别吗? 这本书说第一个是地址呼叫(指针),第二个是参考呼叫,但我并没有完全得到这两个来源。 请向我解释这些消息来源,提前谢谢。
1
#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;
}
2
#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;
}
答案 0 :(得分:0)
就CPU级别的情况而言,指针和引用完全相同。不同之处在于编译器,它不会让你对引用进行删除(并且键入的次数较少)
所以在你的代码中,两个函数都做同样的事情。