如何查找数组中的元素数量

我有一个int数组,我需要找到它中的元素数量。 我知道它与sizeof有关,但我不确定如何使用它。 例

int data2[]={a,b,c,d}; 

使用数组,您可以:

 int numElements = sizeof(data) / sizeof(data[0]); 

但这仅适用于数组,如果您已将数组传递给函数,则无法工作:此时数组会衰减为指针,因此sizeof将返回指针的大小。

你会看到这包裹在宏中:

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