通过地址(指针)和通过引用呼叫之间的区别

你能告诉我来源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

回到顶部