C++通过引用传递一个单独的元素数组 - 它是否易于理解?

Leo*_*oAM 2 c++ arrays pointers

关于通过引用传递vars的快速问题:更合适的是:

1)使用经典指针语法:

void change(int *a) { a = 0; }
...
int number = 1;
change(&number);
Run Code Online (Sandbox Code Playgroud)

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

void change(int a[]) { a[0] = 0; }
...
int number[1] = {1};
change(number);
Run Code Online (Sandbox Code Playgroud)

我想到的东西.想知道如果使用一个元素的数组而不是一个简单的变量,资源使用的差异如何.

Luc*_*ore 8

第一个值将不会改变a指向,它只是使一个副本的a点NULL,然后立即将其丢弃.

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

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

//...
int a;
change(a);
Run Code Online (Sandbox Code Playgroud)

  • @grep可能是C程序员.你还会用什么非`constst`参考?请不要把谷歌风格指南视为理所当然,除非你为谷歌工作."许多风格指南都不鼓励非常规参考" - 除了谷歌以外,我敢再向你展示2个. (2认同)
  • @grep谷歌指南有点儿开玩笑.如果您不了解C++并且不想学习,请关注. (2认同)
  • @grep现在认真,我用最好的意图告诉你这个 - 不要按照谷歌风格指南广告litteram. (2认同)

jua*_*nza 6

都不是.C++有这方面的参考.

void change(int& a) { a = 0; }
Run Code Online (Sandbox Code Playgroud)


Dav*_*ica 5

让它成为一个元素数组是没有意义的。只需使用&运算符将其作为参考传递即可。通过将其设为单元素数组,您会使代码更加复杂,混淆变量的真正用途,并使下一个开发人员的生活更加烦人。

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