Analise o código C a seguir.#include <stdio.h>int main...

Próximas questões
Com base no mesmo assunto
Q2249329 Programação

Analise o código C a seguir.


#include <stdio.h>

int main() {

    int myAge = 43;

    int* ptr = &myAge;

    printf("%d\n", *ptr);

     return 0;

}


O valor mais provável a ser exibido pela execução do código acima é:

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C - 43.

Para resolver essa questão, é necessário entender o conceito de ponteiros em linguagem C. Um ponteiro é uma variável que armazena o endereço de memória de outra variável. No código apresentado, temos uma variável chamada myAge que armazena o valor inteiro 43. Em seguida, um ponteiro chamado ptr é declarado e inicializado para apontar para o endereço de memória da variável myAge.

Quando usamos o operador de desreferenciação * (asterisco) antes de um ponteiro, estamos acessando o valor da variável para a qual o ponteiro está apontando. No caso do código, a linha printf("%d\n", *ptr); está imprimindo o valor que está no endereço de memória apontado por ptr, que é justamente o valor da variável myAge, ou seja, 43.

Portanto, a execução desse código resultará na impressão do valor 43 na tela, o que faz da alternativa C a correta.

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

Este programa em C faz o seguinte:

  1. : Inclui a biblioteca padrão de entrada e saída em C, que contém funções como e .
  2. : Define a função principal que será executada quando o programa for iniciado.
  3. : Declara e inicializa uma variável inteira com o valor .
  4. : Declara um ponteiro para inteiro e o associa ao endereço de memória de .
  5. : Imprime o valor apontado por (o conteúdo do endereço de ) no formato de número inteiro. Ou seja, imprime o valor .
  6. : Indica que o programa terminou com sucesso.

Agora, considerando as alternativas dadas:

A) 0

B) 0x7ffe5367e044

C) 43

D) null

E) undefined

A opção correta é a C) 43.

Isso porque o programa está projetado para imprimir o valor apontado por , que é o conteúdo do endereço de , e esse valor é .

Gabarito C

Fonte: ChatGPT

complementando a explicação: Para imprimir o endereço de memória para o qual o ponteiro aponta, você pode usar o formato %p no printf para imprimir o valor do ponteiro.

Dessa forma ficaria: printf("%p\n", *ptr);

&: para endereço na memória

*: para o valor atribuído do endereço na memória

Clique para visualizar este comentário

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