执行摘要:
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]),数组零位元素的大小。
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);
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。