C Array Size
Get Array Size or Length
get array size" or "get array length" refers to obtaining the number of elements present in an array.
Example
#include <stdio.h>
int main() {
int myNumbers[] = {10, 25, 50, 75, 100};
printf("%lu", sizeof(myNumbers));
return 0;
}
Output
20
Why did the result show 20 instead of 5, when the array contains 5 elements?
- It is because the sizeof operator returns the size of a type in bytes.
You learned from the Data Types chapter that an int type is usually 4 bytes, so from the example above, 4 x 5 (4 bytes x 5 elements) = 20 bytes.
Knowing the memory size of an array is great when you are working with larger programs that require good memory management.
But when you just want to find out how many elements an array has, you can use the following formula (which divides the size of the array by the size of one array element):
Example
#include <stdio.h>
int myNumbers[] = {10, 25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
printf("%d", length);
return 0;
}
Output
5
Making Better Loops
"Making Better Loops" typically refers to improving or optimizing the design and functionality of programming loops. In computer programming, a loop is a control structure that allows a set of instructions to be repeated multiple times until a certain condition is met.
Instead of writing:Example
#include <stdio.h>
int main() {
int myNumbers[] = {25, 50, 75, 100};
int i;
for (i = 0; i < 4; i++) {
printf("%d\n", myNumbers[i]);
}
return 0;
}
Output
25
50
75
100
It is better to write:
Example
#include <stdio.h>
int main() {
int myNumbers[] = {25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
int i;
for (i = 0; i < length; i++) {
printf("%d\n", myNumbers[i]);
}
return 0;
}
Output
25
50
75
100