Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Passing Arrays to Functions in C

Introduction

In C programming, arrays are a fundamental way to store multiple values of the same type. Often, you will need to pass arrays to functions to perform operations on them. This tutorial will guide you through the process of passing arrays to functions in C, with detailed explanations and examples.

Declaring and Initializing Arrays

Before we delve into passing arrays to functions, let's quickly review how to declare and initialize arrays in C.

int numbers[5] = {1, 2, 3, 4, 5};
char letters[4] = {'a', 'b', 'c', 'd'};

In the above example, numbers is an array of 5 integers, and letters is an array of 4 characters.

Syntax for Passing Arrays to Functions

When passing arrays to functions, you need to define the function to accept an array parameter. Here is the syntax:

void functionName(dataType arrayName[], int size);

Let's break down this syntax:

  • void: Return type of the function (can be any data type).
  • functionName: Name of the function.
  • dataType arrayName[]: Array parameter with its data type.
  • int size: Additional parameter for the size of the array.

Example: Passing an Integer Array to a Function

Here is an example of a function that prints all elements of an integer array passed to it:

#include <stdio.h>

void printArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    printArray(numbers, size);
    return 0;
}

Output:

1 2 3 4 5

In this example:

  • The function printArray takes an integer array arr and its size as parameters.
  • Inside the function, a for loop is used to print each element of the array.
  • In the main function, we pass the array numbers and its size to the printArray function.

Example: Modifying Array Elements in a Function

Arrays in C are passed by reference, meaning any changes made to the array elements inside the function will affect the original array. Here is an example:

#include <stdio.h>

void incrementArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] += 1;
    }
}

int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    incrementArray(numbers, size);
    for(int i = 0; i < size; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");
    return 0;
}

Output:

2 3 4 5 6

In this example:

  • The function incrementArray increments each element of the array by 1.
  • In the main function, we call incrementArray with numbers and its size.
  • After the function call, the elements of numbers are modified, as shown in the output.

Passing Multidimensional Arrays to Functions

Passing multidimensional arrays to functions is similar to passing one-dimensional arrays, but you must specify the size of all dimensions except the first one. Here is an example:

#include <stdio.h>

void print2DArray(int arr[][3], int rows) {
    for(int i = 0; i < rows; i++) {
        for(int j = 0; j < 3; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int matrix[2][3] = { {1, 2, 3}, {4, 5, 6} };
    print2DArray(matrix, 2);
    return 0;
}

Output:

1 2 3
4 5 6

In this example:

  • The function print2DArray takes a 2D array arr and the number of rows as parameters.
  • The size of the columns is specified in the function parameter (int arr[][3]).
  • In the main function, we pass the 2D array matrix and its number of rows to the print2DArray function.

Conclusion

Passing arrays to functions is an essential skill in C programming. It allows for more modular and reusable code. In this tutorial, we covered how to declare and initialize arrays, the syntax for passing arrays to functions, and provided examples of both one-dimensional and multidimensional arrays. Practice these concepts to become proficient in handling arrays in C.