Skip to content

Latest commit

 

History

History
27 lines (18 loc) · 612 Bytes

054 - 如何确定 C 语言中数组的大小.md

File metadata and controls

27 lines (18 loc) · 612 Bytes

https://stackoverflow.com/questions/37538/how-do-i-determine-the-size-of-my-array-in-c

问题

C 语言中如何确定数组的元素个数?

回答

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

但上面的写法还有点不足。如果以后数组 a 的类型变为其它类型,那么 sizeof(int) 这种写法就会出现兼容问题,所以建议下面的写法,

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

如果你的程序需要大量使用这种语句,不妨定义一个宏,

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

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