Imagem de fundo

Um programador escreve a função abaixo em linguagem C, que...

Um programador escreve a função abaixo em linguagem C, que deveria dobrar o valor do seu parâmetro, uma variável inteira:

Imagem associada para resolução da questão

Ao testar dobra(n);, ele percebe que o valor de n no código chamador permanece inalterado após a chamada.

Assinale a alternativa que apresenta uma correção que faz a função dobra produzir o efeito pretendido.


A

void dobra(int &x) { x = x * 2; }, chamada como dobra(&n);


B

void dobra(int x) { x = x * 2; return; }, chamada como dobra(n);


C

void dobra(int *x) { *x = *x * 2; }, chamada como dobra(&n);


D

void dobra(int *x) { x = x * 2; }, chamada como dobra(&n);


E

void dobra(static int x) { x = x * 2; }, chamada como dobra(n);