gpt4 book ai didi

c++ - 引用调用和指针调用的区别

转载 作者:IT老高 更新时间:2023-10-28 21:43:54 41 4
gpt4 key购买 nike

谁能告诉我指针调用和引用调用之间的确切区别。实际上这两种情况都发生了什么?

例如:

引用调用:

void swap(int &x, int &y)
{
int temp;
temp = x; /* save the value at address x */
x = y; /* put y into x */
y = temp; /* put x into y */

return;
}

swap(a, b);

指针调用:

void swap(int *x, int *y)
{
int temp;
temp = *x; /* save the value at address x */
*x = *y; /* put y into x */
*y = temp; /* put x into y */

return;
}

swap(&a, &b);

最佳答案

这两种情况完全相同。

不过,细微的差别在于,引用永远不会为空(您可以确定在函数内部,它们引用的是有效变量)。另一方面,指针可能为空或可能指向内存中的无效位置,从而导致 AV。

关于c++ - 引用调用和指针调用的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17423218/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com