如何确定C中数组的大小?

也就是说,数组可以容纳多少个元素?

最佳答案

执行摘要:

int a[17];
size_t n = sizeof(a)/sizeof(a[0]);




完整答案:

要确定以字节为单位的数组大小,可以使用sizeof
操作员:

int a[17];
size_t n = sizeof(a);


在我的计算机上,整数是4个字节长,所以n是68。

为了确定数组中元素的数量,我们可以除以
数组的总大小乘以数组元素的大小。
您可以使用以下类型来执行此操作:

int a[17];
size_t n = sizeof(a) / sizeof(int);


并得到正确的答案(68/4 = 17),但是如果
a更改后,如果您忘记更改,将会遇到一个讨厌的错误
sizeof(int)也是如此。

因此首选除数是sizeof(a[0]),即
数组的zeroeth元素。

int a[17];
size_t n = sizeof(a) / sizeof(a[0]);


另一个优点是您现在可以轻松地参数化
宏中的数组名称并获取:

#define NELEMS(x)  (sizeof(x) / sizeof((x)[0]))

int a[17];
size_t n = NELEMS(a);

关于c - 如何确定C中数组的大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45518075/

10-11 22:58
查看更多