#include <stdio.h>
#include <stdlib.h>
/* Puzzle D01 -- print each element in an array of ints, one per line */
void printArray( int size, int arr[] )
{
int j;
printf("index\tvalue\n");
printf("-----\t-----\n");
for ( j=0; j < size; j++ )
printf(" %3d: \t%5d\n", j, arr[j] );
}
int main(int argc, char *argv[])
{
int x[] = {0, 9, 23, -6, 5, 2, 71, 45, -9, 3 };
printArray( 10, x );
printf("\n");
return 0;
}
Comments: When an array is a parameter to a function, its length must also be a parameter (unless all arrays in the program are always the same size). The length of an array cannot be determined from the array itself.
Details: In the call printArray( 10, x )
the parameter x actually stands for the address
of the first byte of the array.
The phrase "passing an array as a parameter"
is not accurate (although commonly used).
A more accurate phrase would be
"passing an array address as a parameter".