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

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

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

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 指向 NULLcopy然后立即丢弃它。

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

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

//...
int a;
change(a);

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

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