如何确定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/