1

有人可以帮我弄清楚为什么这不起作用。

int main() {
int A[100];

    for(int i=0; i<A.length; i++)
    {

    }

    return 0;
}

这是我的错误

[Error] request for member 'length' in 'A', which is of non-class type 'int [100]'

4

2 回答 2

3

C 风格的数组没有length属性之类的东西。考虑使用std::arrayand 它的size()成员,或者sizeof(A)/sizeof(int),如果您坚持使用 C 样式数组。

于 2013-10-19T12:23:24.270 回答
2

普通数组没有任何成员。如果您需要知道它们的长度,您要么必须跟踪它,要么您可以编写一个简单的函数模板来获取它:

template<class T, size_t N>
constexpr size_t size(const T (&)[N]) { return N; }

然后

int A[100];
....
for(int i=0; i < size(A); i++) { ... }

使用std::array<int, 100>. 这有一个 size 方法。

于 2013-10-19T12:26:01.677 回答