Com relação a passagem de parametros em C++, podemos dizer que:
Anexos:
cledersonbc:
Está faltando as afirmações
Respostas
respondido por:
10
"Se uma variável precisa ser alterada dentro de um procedimento, e esta alteração deve ser mantida, esta variável deve ser passada por referência."
Correto. Porque como se trata de um procedimento, ele não pode retornar a variável modificada.
A 4ª e a 5ª estão incorretas:
#include <stdio.h>
int pssVal(int x);
int pssRef(int *x);
int pssDois(int *y, int x);
int main() {
int x = 10;
int y = 3;
printf("(main) x = %d\n\n", x);
pssVal(x);
printf("(main) x = %d\n", x);
pssRef(&x);
printf("(main) x = %d\n\n", x);
pssDois(&y, x);
printf("(main) x = %d\n", x);
return 0;
}
//Passagem por valor
int pssVal(int x) {
x = x + 5;
printf("(pssVal) x = %d\n", x);
}
//Passagem por referência
int pssRef(int *x) {
*x = *x + 3;
printf("(pssRef) x = %d\n", *x);
}
//Passagem por valor e referência
int pssDois(int *y, int x) {
*y = *y + 1;
x = x + 2;
printf("(pssDois) y = %d e *x = %d\n", *y, x);
}
Correto. Porque como se trata de um procedimento, ele não pode retornar a variável modificada.
A 4ª e a 5ª estão incorretas:
#include <stdio.h>
int pssVal(int x);
int pssRef(int *x);
int pssDois(int *y, int x);
int main() {
int x = 10;
int y = 3;
printf("(main) x = %d\n\n", x);
pssVal(x);
printf("(main) x = %d\n", x);
pssRef(&x);
printf("(main) x = %d\n\n", x);
pssDois(&y, x);
printf("(main) x = %d\n", x);
return 0;
}
//Passagem por valor
int pssVal(int x) {
x = x + 5;
printf("(pssVal) x = %d\n", x);
}
//Passagem por referência
int pssRef(int *x) {
*x = *x + 3;
printf("(pssRef) x = %d\n", *x);
}
//Passagem por valor e referência
int pssDois(int *y, int x) {
*y = *y + 1;
x = x + 2;
printf("(pssDois) y = %d e *x = %d\n", *y, x);
}
Perguntas similares
7 anos atrás
7 anos atrás
7 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás