Respostas
Em C++, uma função pode ser chamada na forma acima e alterar o valor das suas variáveis. Para isso basta declará-la como:
int f(int & x) { x--; return x; }
Temos em C++ o operador & que se comporta analogamente do mesmo em C, porém tendo uma função a mais, a de criar variáveis de referência:
- &x quando usado no código retorna o pointero para o endereço de x;
- &x quando usado na declaração de variável, cria uma referência;
- &x quando usado como parâmetro na declaração de uma função faz com que suas chamadas transfira o argumento/parâmetro passando-o de forma similar a passagem de seu ponteiro. (Passagem por referência).
Você está fazendo uma passagem de parâmetro por referência, &x é o endereço de x na memória. No exemplo abaixo, o ponteiro para inteiro (int n*) "recebe" &x, ou seja, aponta para o endereço de x na memória.
Assim, temos:
n = &x(endereço de x) ---> n recebe o valor de &x
n* = x = 5 ---> n* permite acessar o conteúdo de &x
Exemplo em C
include <stdio.h>
include <stdlib.h>
//função somaMaisUm
void somaMaisUm(int *n){
*n = *n + 1;
printf(“Dentro da funcao: x = %d\n”,*n);
}
//programa principal
int main(){
int x = 5;
printf(“Antes da funcao: x = %d\n”,x);
somaMaisUm(&x);
printf(“Depois da funcao: x = %d\n”,x);
return 0;
}
Saída
Antes da função: x = 5
Dentro da função: x = 6
Depois da função: x = 6
Responda
Para escrever sua resposta aqui, entre ou crie uma conta