S_LP1_passagem de parametros_slides_estudados - Pré P2 - Schneider
8 pág.

S_LP1_passagem de parametros_slides_estudados - Pré P2 - Schneider


DisciplinaProgramação I21.721 materiais248.463 seguidores
Pré-visualização1 página
Passagem de Parâmetros
Linguagem de Programação C
http://www.ybadoo.com.br/
Linguagem de Programação C
Passagem de Parâmetros
Cristiano Lehrer
http://www.ybadoo.com.br/
Passagem de Parâmetros
Linguagem de Programação C
http://www.ybadoo.com.br/
Revisão \u2013 Funções e Procedimentos
 int maior(int a, int b){
 return (a > b) ? a : b;
 }
\u25cf Nome da função: maior
\u25cf Tipo de retorno: int
\u25cf Lista de parâmetros: int a, int b
\u25cf Corpo da função: return (a > b) ? a : b;
\u25cf Uma função que não retorne qualquer tipo, isto é, que retorne void, 
chama-se popularmente procedimento.
\u25cf O número e o tipo dos argumentos passados a uma função devem 
corresponder ao número e ao tipo dos parâmetros com que esta foi 
definida.
Passagem de Parâmetros
Linguagem de Programação C
http://www.ybadoo.com.br/
Tipo de Retorno
\u25cf Uma função possui apenas um tipo de retorno:
 int maior(int a, int b)
\u25cf Um procedimento não possui um tipo de retorno:
 void escrever(int number)
\u25cf Caso a função precise retornar mais do que um valor, como isso é 
possível?
Passagem de Parâmetros
Linguagem de Programação C
http://www.ybadoo.com.br/
Tipos de Passagem de Parâmetros (1/2)
\u25cf Passagem de parâmetros por valor:
\u25cf Numa passagem de parâmetros por valor, são sempre enviadas para a 
função cópias dos valores de que esta necessita.
void troca(int a, int b)
{
 int tmp;
 tmp = a;
 a = b;
 b = tmp;
}
int main()
{
 int n = 10;
 int k = 15;
 printf("%d %d\n", n, k); // 10 15
 troca(n, k);
 printf("%d %d\n", n, k); // 10 15
 return 0;
}
Passagem de Parâmetros
Linguagem de Programação C
http://www.ybadoo.com.br/
Tipos de Passagem de Parâmetros (2/2)
\u25cf Passagem de parâmetros por referência:
\u25cf Numa passagem de parâmetros por referência, são sempre enviadas 
para a função as referências as variáveis de que esta necessita.
void troca(int *a, int *b)
{
 int tmp;
 tmp = *a;
 *a = *b;
 *b = tmp;
}
int main()
{
 int n = 10;
 int k = 15;
 printf("%d %d\n", n, k); // 10 15
 troca(&n, &k);
 printf("%d %d\n", n, k); // 15 10
 return 0;
}
Passagem de Parâmetros
Linguagem de Programação C
http://www.ybadoo.com.br/
Passagem de Vetores para Funções
\u25cf O nome de um vetor corresponde ao endereço do seu primeiro 
elemento:
\u25cf Se s for um vetor, então s == &s[0]
\u25cf Os vetores são sempre passados às funções sem o &, pois o nome 
de um vetor é por si só um endereço:
 int v[] = {1, 2, 3, 4, 5};
 somar(v, 5);
int somar(int v[], int max)
{
 int soma, i;
 for(i = 0, soma = 0; i < max; i++)
 {
 soma = soma + v[i];
 }
 return soma;
}
int somar(int *v, int max)
{
 int soma;
 for(soma = 0; max > 0; max--)
 {
 soma = soma + *v++;
 }
 return soma;
}
Passagem de Parâmetros
Linguagem de Programação C
http://www.ybadoo.com.br/
Passagem de Parâmetro na Linha de Comando (1/2)
C:/> copy alfa beta
\u25cf A função main pode receber valores passados via linha de comando:
int main(int argc, char *argv[])
\u25cf argc
\u2013 É um inteiro que indica quantos argumentos foram passados na linha de 
comando (incluindo o próprio nome do programa).
\u25cf argv
\u2013 Vetor contendo todas as strings passadas na linha de comando.
Passagem de Parâmetros
Linguagem de Programação C
http://www.ybadoo.com.br/
Passagem de Parâmetro na Linha de Comando (2/2)
\u25cf Escreva um programa que apresente todos os parâmetros que 
recebeu a partir da linha de comando.
#include <stdio.h>
int main(int argc, char *argv[])
{
 int i;
 for(i = 0; i < argc; i++)
 {
 printf(&quot;%d - parâmetro: %s\n&quot;, i + 1, argv[i]);
 }
 return 0;
}
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8