4

计算数组中的元素数量很容易:

int myarr[] ={1,2,3};
int myarrsize = sizeof(myarr)/sizeof(myarr[0]);

但是,如何计算二维数组中的行数?

int my2Darr[][3]={{1,2,3},{4,5,6}};
int my3DarrRows = ???

是否可以?

4

4 回答 4

15

一样的方法。所以要么:

sizeof(my2Darr)/sizeof(my2Darr[0])

或者:

sizeof(my2Darr[0])/sizeof(my2Darr[0][0])

取决于你所说的“行”是什么意思。

于 2013-01-14T00:26:29.540 回答
4

除非您指定已经知道其大小的第二个数组大小,否则您的代码将无法编译:

int my2Darr[][3]={{1,2,3},{4,5,6}};
             ^^^

所以问题来了 如何计算二维数组中的行数?

template <class T, unsigned N, unsigned N1>
int length(T (&)[N][N1])
{
    return N;
}

如果您想要列大小,请N1改为返回

于 2013-01-14T00:42:56.383 回答
3
sizeof(arr[0])/sizeof(arr[0][0])
于 2013-01-14T00:25:51.877 回答
0

有效的是

sizeof(数组)/sizeof(数组[0]);

下面的一个不起作用 sizeof(array[0])/sizeof(array[0][0]);

于 2017-04-19T18:51:10.070 回答