Getting the length of an Array in C
In this tutorial, we are going to learn about how to get the length of an array in C. it means the number of elements present in a given array.
C doesn’t have a built-in property to return the size of an array like other programming languages (Java or Python). Instead of we need to calculate it manually.
Getting the array length
To get the length of an array, we can use the built-in sizeof operator in C.
Here is an example, that gets the length of an scores
array:
#include <stdio.h>
int main()
{
int scores[ ] = { 12, 22, 32, 42, 52, 62};
int size = sizeof scores / sizeof scores[0]; printf("%u", size); /* 6 */
return 0;
}
In the example above, we divided the size of an array with the size of one element to get the array length.
Instead of:
int size = sizeof scores / sizeof scores[0];
we can also use pointer *
to get the first element in an array:
int size = sizeof scores / sizeof *scores;
Similarly, we can also find the length of an array without using the sizeof
operator, by taking the help of pointer arithmetic.
#include <stdio.h>
int main()
{
int scores[ ] = { 12, 22, 32, 42, 52, 62};
int size = *(&scores + 1) - scores; printf("%u", size); /* 6 */
return 0;
}
In the above code, the *(&scores + 1)
gives the memory address after the end of an array and scores
gives the memory address at the first element of an array, so that by subtracting *(&scores + 1) - scores
we can get the length of an array.