1

抱歉,如果这是一个非常愚蠢的问题,但由于某种原因,我不明白该怎么做。

我尝试编写对我来说最有意义的代码,但它不起作用:

int numbers[10]{};

int& numbers_ref  { numbers };   // nope
int  numbers_ref& { numbers };   // nope 
int& numbers_ref  { &numbers };  // nope
int  numbers_ref& { &numbers };  // nope

编辑:我尝试使用[],但如果不使用,我仍然无法正常工作auto

int& numbers_ref[]  { numbers };   // nope
(int  numbers_ref[])& { numbers };   // nope 
(int numbers_ref[10]) &  { numbers };  // nope
int []numbers_ref& { &numbers };  // nope

我可以获得参考的唯一方法是P0W所说的:

auto& numbers_ref= numbers;  // yay

PS谢谢克里斯,这正是我想要的,但无法猜测语法:

int (&numbers_ref)[10] = numbers;  // exactly right! 
4

1 回答 1

5
typedef int numbers_type[10];
numbers_type& numbers_ref = numbers;

编辑:(正如克里斯所建议的)

int (&numbers_ref) [10] = numbers; // If you don't want typedef 

在 C++11 中:

auto& numbers_ref= numbers;
于 2013-08-15T06:40:40.697 回答