
可以看出,当使用内置下标运算符访问数组中的元素时,用于表示下标的表达式必须是无作用域枚举或整型类型的纯右值。而C++入门时学到的 for 循环遍历查看内置数组中时,使用左值作为内置下标运算符的操作对象。
int a[10] = {0};
// i 是左值
for(int i = 0; i < 10; i++)
{
std::cout << a[i] << std:endl;
}
这里通过左值到右值的转换,可以将任何非函数、非数组类型的泛左值隐式转换为纯右值。

本文探讨了C++中为何for循环遍历数组时允许使用左值作为下标,并揭示了如何通过隐式转换实现从左值到纯右值的过程。重点在于理解这种转换在访问内置数组元素中的作用。

可以看出,当使用内置下标运算符访问数组中的元素时,用于表示下标的表达式必须是无作用域枚举或整型类型的纯右值。而C++入门时学到的 for 循环遍历查看内置数组中时,使用左值作为内置下标运算符的操作对象。
int a[10] = {0};
// i 是左值
for(int i = 0; i < 10; i++)
{
std::cout << a[i] << std:endl;
}
这里通过左值到右值的转换,可以将任何非函数、非数组类型的泛左值隐式转换为纯右值。

764

被折叠的 条评论
为什么被折叠?