const数组的自动引用

2 c++ reference auto c++11

我进入C++ 11并且真的无法理解为什么会发生这种情况:

const int arrSource[4] = { 5,7,6,4 };
for (auto& i : arrSource) {
    std::cout << i << " ";
    ++i; //error
}
Run Code Online (Sandbox Code Playgroud)

它说i必须是一个可修改的左值,并且i:你不能分配给一个变量const.

所以它意味着,如果arrSource[]const,它i const也是如此?

Nia*_*all 5

所以它意味着,如果arrSource[]const,它i const也是如此?

是的,如果数组是const,则数组中的每个元素也是const.

auto&推导出基于所述初始化剂的类型,在这种情况下,它被推断为是int const&,因此不能被修改.

可能不需要增量(不确定您的意图).基于范围的for循环负责迭代之间的递增.

如果想要修改阵列(通过i),那么你需要删除const.