Passe matrizes para uma função em C

Neste tutorial, você aprenderá a passar arrays (arrays unidimensionais e multidimensionais) para uma função na programação C com a ajuda de exemplos.

Na programação C, você pode passar um array inteiro para funções. Antes de aprendermos isso, vamos ver como você pode passar elementos individuais de um array para funções.

Passando elementos individuais da matriz

Passar elementos de matriz para uma função é semelhante a passar variáveis ​​para uma função.

Exemplo 1: passando uma matriz

 #include void display(int age1, int age2) ( printf("%d", age1); printf("%d", age2); ) int main() ( int ageArray() = (2, 8, 4, 12); // Passing second and third elements to display() display(ageArray(1), ageArray(2)); return 0; ) 

Resultado

 8 4 

Exemplo 2: passando matrizes para funções

 // Program to calculate the sum of array elements by passing to a function #include float calculateSum(float age()); int main() ( float result, age() = (23.4, 55, 22.6, 3, 40.5, 18); // age array is passed to calculateSum() result = calculateSum(age); printf("Result = %.2f", result); return 0; ) float calculateSum(float age()) ( float sum = 0.0; for (int i = 0; i < 6; ++i) ( sum += age(i); ) return sum; )

Resultado

 Resultado = 162,50

Para passar um array inteiro para uma função, apenas o nome do array é passado como argumento.

 result = calculateSum(age);

No entanto, observe o uso de ()na definição da função.

 float calculateSum(float age()) (… )

Isso informa ao compilador que você está passando um array unidimensional para a função.

Passando Arrays Multidimensionais para uma Função

Para passar arrays multidimensionais para uma função, apenas o nome do array é passado para a função (semelhante aos arrays unidimensionais).

Exemplo 3: Passando matrizes bidimensionais

 #include void displayNumbers(int num(2)(2)); int main() ( int num(2)(2); printf("Enter 4 numbers:"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) scanf("%d", &num(i)(j)); // passing multi-dimensional array to a function displayNumbers(num); return 0; ) void displayNumbers(int num(2)(2)) ( printf("Displaying:"); for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 2; ++j) ( printf("%d", num(i)(j)); ) ) )

Resultado

 Insira 4 números: 2 3 4 5 Exibindo: 2 3 4 5 

Nota: Na programação C, você pode passar matrizes para funções, no entanto, não pode retornar matrizes de funções.

Artigos interessantes...