Buscar

4) Quando uma função é chamada usando &x como parâmetro, onde é colocado o valor de &x?

Respostas

16 pessoas visualizaram e tiraram suas dúvidas aqui
User badge image

James Ribeiro

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).


1
Dislike0
User badge image

Diego Cruvello

dsadsa

0
Dislike0
User badge image

Milton C.

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

0
Dislike0

Responda

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Mais conteúdos dessa disciplina