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.
Using sizeof operator
We can get the length of an array by dividing the size of an array with the size of one element.
The built-in sizeof()
operator is used here.
Example:
#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;
}
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.