aula - passagem referência
DESCRIPTION
Aula - Passagem ReferênciaTRANSCRIPT
-
Procedimentos e Funes
Passagem de Parmetros:
Passagem por Valor: Quando a funo chamada o parmetro passado por valor copiado, ou seja, o valor da varivel utilizada como parmetro no alterado.
Passagem por Referncia: Quando a funo chamada o endereo do parmetro passado por referncia atribudo um ponteiro, ou seja, qualquer alterao no contedo apontado ser refletida no contedo da varivel utilizada como parmetro.
-
Procedimentos e FunesExemplo :
void FuncaoInutil(int A, int* B){
A = 1;*B = 2;
}
int main(){
int X = 0, Y = 0;FuncaoInutil(X, &Y);printf(%d %d, X, Y);return 0;
}
-
Procedimentos e FunesExerccio 1:
Escreva um procedimento ou funo em linguagem Cque troca dois valores A e B.
Exerccio 2:
Escreva um procedimento ou funo em linguagem Cque recebe dois valores A e B, calcula a soma eguarda o resultado em A.
Exerccio 3:
Escreva um procedimento ou funo em linguagem Cque retorna a soma e o produto de dois valores A e B.
-
Procedimentos e Funes
Soluo:
void troca(int* A, int* B){
int aux;aux = *A;*A = *B;*B = aux;
}
-
Procedimentos e Funes
Soluo:
void SomaEmA(int* A, int B){
*A = *A + B;}
-
Procedimentos e Funes
Soluo:
void SomaProduto(int A, int B, int* soma, int* prod){
*soma = A + B;*prod = A * B;
}
-
Procedimentos e Funes
Exerccio :
Escreva um procedimento ou funo em linguagem Cque recebe um vetor de nmeros inteiros V detamanho 100, e um inteiro N, em seguida voc deveimprimir os N primeiros valores do vetor.
-
Procedimentos e Funes
Soluo:
void ImprimeVetor(int V[100], int N){
int i;for (i = 0; i < N; i++)
printf(%d , V[i]);}
-
Procedimentos e Funes
Exerccio :
Escreva um procedimento ou funo em linguagem Cque recebe um vetor de nmeros inteiros V detamanho 100, e um inteiro N por referncia, emseguida voc deve ler valores inteiros da entrada atque o usurio digite -1. Ao final todos os valoresdiferentes de -1 devem estar armazenados em V e ototal de valores deve estar em N.
-
Procedimentos e Funes
Soluo:
void LeVetor(int V[100], int* N){
int aux;*N = 0;scanf(%d, &aux);while (aux != -1){
V[*N] = aux;(*N)++;scanf(%d, &aux);
}}
Procedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e Funes