pass arrays to a function
How to pass arrays to a function in C Programming?
In this article, you'll learn about passing an array to a function and using it in your program. You'll learn to pass both one-dimensional and multi-dimensional arrays.

This can be done for both one-dimensional array or a multi-dimensional array.
Passing One-dimensional Array In Function
Single element of an array can be passed in similar manner as passing variable to a function.
C program to pass a single element of an array to function
#include <stdio.h>
void display(int age)
{
printf("%d", age);
}
int main()
{
int ageArray[] = { 2, 3, 4 };
display(ageArray[2]); //Passing array element ageArray[2] only.
return 0;
}
Output
4
Passing an entire one-dimensional array to a function
While passing arrays as arguments to the function, only the name of the array is passed (,i.e, starting address of memory area is passed as argument).
C program to pass an array containing age of person to a function. This function should find average age and display the average age in main function.
#include <stdio.h>
float average(float age[]);
int main()
{
float avg, age[] = { 23.4, 55, 22.6, 3, 40.5, 18 };
avg = average(age); /* Only name of array is passed as argument. */
printf("Average age=%.2f", avg);
return 0;
}
float average(float age[])
{
int i;
float avg, sum = 0.0;
for (i = 0; i < 6; ++i) {
sum += age[i];
}
avg = (sum / 6);
return avg;
}
Output
Average age=27.08
Passing Multi-dimensional Arrays to Function
To pass two-dimensional array to a function as an argument, starting address of memory area reserved is passed as in one dimensional array
#Example: Pass two-dimensional arrays to a function
#include <stdio.h>
void displayNumbers(int num[2][2]);
int main()
{
int num[2][2], i, j;
printf("Enter 4 numbers:\n");
for (i = 0; i < 2; ++i)
for (j = 0; j < 2; ++j)
scanf("%d", &num[i][j]);
// passing multi-dimensional array to displayNumbers function
displayNumbers(num);
return 0;
}
void displayNumbers(int num[2][2])
{
// Instead of the above line,
// void displayNumbers(int num[][2]) is also valid
int i, j;
printf("Displaying:\n");
for (i = 0; i < 2; ++i)
for (j = 0; j < 2; ++j)
printf("%d\n", num[i][j]);
}
Output
Enter 4 numbers: 2 3 4 5 Displaying: 2 3 4 5
Comments
Post a Comment