Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Argumentos | Funções
Noções Básicas de C
course content

Conteúdo do Curso

Noções Básicas de C

Noções Básicas de C

1. Introdução
2. Dados
3. Operadores
4. Instruções de controle
5. Funções
6. Ponteiros

bookArgumentos

As funções podem ser consideradas como minifábricas, pegando matérias-primas e transformando-as em diversos produtos. Da mesma forma, as funções processam dados de entrada. A entrada para uma função é denominada argumento ou parâmetro.

Relembrando a estrutura de uma função:

arguments_placeholder é o local onde você lista os argumentos da função.

Como exemplo, vamos projetar uma função para converter graus em radianos:

c

Main

copy
1234567891011121314151617181920
#include <stdio.h> // my function for convertation degrees to radians double degreesToRadians(double degree) // *double degree* is argument { double rads = (degree * 3.14) / 180; return rads; // output of function } int main() { double degree = 30; // We immediately print the result of our function printf("30 degrees equals %.2f radians\n", degreesToRadians(degree)); return 0; }

Escopo

Imagine uma chamada de função como um portal para um reino separado e autônomo onde ações específicas ocorrem. Objetos criados nesse reino existem unicamente ali, e uma vez que o reino deixa de existir, eles também desaparecem.

Por exemplo, se declararmos uma variável dentro de uma função, ela permanece inacessível de fora daquela função. A única peça de informação que podemos extrair da execução de uma função é o que obtemos utilizando a instrução return.

Argumentos

Funções podem receber uma variedade de argumentos: tipos básicos de dados (como int, char, double), arrays/strings, ponteiros (em breve!), e até outras funções.

Também é importante notar que os nomes dos argumentos dentro da função podem ser diferentes dos dados reais que você está passando para ela.

A variável int inputVar existe apenas dentro do escopo da função, atuando como um espaço reservado para os dados que queremos inserir na função. Contudo, os tipos de dados tanto dos argumentos quanto dos dados reais passados à função devem coincidir.

Agora, vamos escrever uma função que identifica o maior elemento em um array:

c

Main

copy
123456789101112131415161718192021222324252627
#include <stdio.h> int findMaxElement(int arr[]) // 1 { int max = arr[0]; // 2 for (int i = 1; i < 5; i++) // 3 { if (arr[i] > max) // 3 { max = arr[i]; // 4 } } return max; } int main() { int array[] = { 10, 5, 7, 14, 3 }; int maxElement = findMaxElement(array); printf("Max element is: %d\n", maxElement); return 0; }

Eis o algoritmo:

  1. Passe o array para a função;
  2. A função marca qualquer elemento escolhido do array como "max" (independentemente do seu valor real);
  3. Um loop dentro da função examina então cada elemento, comparando-o com "max";
  4. Se algum novo elemento for maior que o "max", então esse elemento assume o título de "max".
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 3
some-alt