通过地址(指针)和通过引用呼叫之间的区别
你能告诉我来源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;
}
回答:
在CPU级别会发生什么情况而言,指针和引用是完全一样的。不同之处在于编译器,它不会让你在参考上做一个删除操作(并且输入的数量更少)
所以在你的代码中,两个函数都做同样的事情。
以上是 通过地址(指针)和通过引用呼叫之间的区别 的全部内容, 来源链接: utcz.com/qa/258140.html