我如何找到数组中的元素数量?

我有一个int数组,我需要找到它中的元素数量。我知道它与sizeof有关,但我不知道如何使用它。
如果您的数组有范围,您可以使用sizeof来确定其字节大小,并使用除法来计算元素数量:

#define NUM_OF_ELEMS 10
int arr[NUM_OF_ELEMS];
size_t NumberOfElements = sizeof(arr)/sizeof(arr[0]);

如果您收到数组作为函数参数或在堆中分配数组,则无法使用sizeof确定其大小。您必须以某种方式存储/传递大小信息才能使用它:

void DoSomethingWithArray(int* arr, int NumOfElems)
{
    for(int i = 0; i < NumOfElems; ++i) {
        arr[i] = /*...*/
    }
}
http://stackoverflow.com/questions/10290610/how-can-i-find-the-number-of-elements-in-an-array

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:我如何找到数组中的元素数量?