Considere o programa a seguir, elaborado na linguagem ANSI ...

Próximas questões
Com base no mesmo assunto
Q1922250 Programação
Considere o programa a seguir, elaborado na linguagem ANSI C:
          #include <stdio.h>
          int* pa, a;
          int main() {              a = 10;              pa = &a;              a = 8;              printf("%d", a);              printf(" %d", *pa);            }
Assinale a alternativa CORRETA sobre a saída (output) obtida, ao se executar o programa:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: A - 8 8

Para entender a saída deste programa em linguagem ANSI C, é importante conhecer alguns conceitos fundamentais:

  • Variáveis: armazenam dados que podem ser alterados durante a execução do programa.
  • Ponteiros: variáveis que armazenam endereços de memória de outras variáveis.
  • Atribuição e acesso a variáveis: ao atribuir um valor a uma variável e depois alterá-lo, ao acessar essa variável, o valor obtido será o último atribuído.

Com base nesses conceitos, vamos destrinchar o código:

  1. A variável int a é inicializada com o valor 10.
  2. O ponteiro int* pa é inicializado para apontar para o endereço de memória da variável a.
  3. O valor da variável a é alterado para 8.
  4. O comando printf imprime o valor atual da variável a, que é 8.
  5. O comando printf seguinte imprime o valor apontado pelo ponteiro pa, que é o valor atual da variável a (já que pa aponta para a), que também é 8.

Portanto, a saída correta do programa é 8 8, pois ambos, a variável a e o conteúdo apontado pelo ponteiro pa (que é a), têm o valor 8 no momento em que são impressos.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

A alternativa correta é:

8 8

A variável a é inicializada com o valor 10. A variável pa é apontada para a variável a. O valor da variável a é alterado para 8. A função printf() é chamada para imprimir os valores das variáveis a e *pa. Como a variável pa aponta para a variável a, a função printf() imprime os valores 8 e 8.

duas variaveis, um ponteiro recebendo o endereço de uma outra variável

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo