c++ - 如何在不使用指针的情况下编写对 10 个整数数组的引用?

标签 c++ arrays c++11 reference

抱歉,如果这是一个非常愚蠢的问题,但出于某种原因我无法理解该怎么做。

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

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/

相关文章:

C++11模板函数接受多个模板别名

php - 在多维数组中搜索字符串并获取 key

php - 排列多维数组

C++:将整数转换为指针的安全方法

c++ - gRPC 不会在 ubuntu 上为 c++ 生成库

javascript - 跨平台base64字节数组编码

c++ - 如何将模式从Dev-C++中的c++ 98模式更改为支持C++ 0x(基于范围)的模式?

c++ - std::atomic bool 或 Normal global bool 在单线程中好用吗?

c++ - OpenGL 围绕相机移动场景

c++ - 在 C++ (g++) 中使用 errno 作为异常参数的意外控制流(编译器错误?)