抱歉,如果这是一个非常愚蠢的问题,但出于某种原因我无法理解该怎么做。
我尝试编写对我来说最有意义的代码,但它不起作用:
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
附言谢谢 chris,这正是我想要的,但无法猜出语法:
int (&numbers_ref)[10] = numbers; // exactly right!
最佳答案
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;
关于c++ - 如何在不使用指针的情况下编写对 10 个整数数组的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18247512/