C++ 通过引用传递单个元素数组 - 这是事实吗?

C++ Pass by reference a single element array - It's factible?

本文关键字:事实 数组 元素 引用 单个 C++      更新时间:2023-10-16

关于通过引用传递变量的快速问题:还有什么合适的方法:

1) 使用经典指针语法:

void change(int *a) { a = 0; }
...
int number = 1;
change(&number);

2) 或者将其作为单个元素数组,并默认通过引用传递:

void change(int a[]) { a[0] = 0; }
...
int number[1] = {1};
change(number);

我想了一下。想知道如果使用一个元素的数组而不是一个简单的变量,那么资源使用会有什么不同。

第一个不会更改a指向的值,它只是将a副本指向NULL,然后立即丢弃它。

如果你想通过引用,只需通过引用:

void change(int& a) { a = 0; }
//...
int a;
change(a);

两者都没有。C++对此有参考。

void change(int& a) { a = 0; }

将其设为单元素数组毫无意义。只需使用&运算符将其作为引用传入即可。通过使其成为一个单元素数组,您的代码变得更加复杂,混淆了变量的真正用途,并使下一个开发人员的生活更加令人讨厌。

至于您的资源使用问题,没有任何资源不同。在引擎盖下,它们基本上都只是一个指针。