计算常量2D c阵列中的行数

时间:2013-01-14 00:24:53

标签: c++ c

计算数组中元素的数量很简单:

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

但是,如何计算2D数组中的行数?

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

有可能吗?

4 个答案:

答案 0 :(得分:13)

同样的道理。所以:

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

或:

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

取决于“行”的含义。

答案 1 :(得分:4)

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

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

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

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

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

答案 2 :(得分:3)

sizeof(arr[0])/sizeof(arr[0][0])

答案 3 :(得分:0)

有效的

的sizeof(阵列)/的sizeof(数组[0]);

以下内容不起作用 的sizeof(数组[0])/的sizeof(数组[0] [0]);