Logo Passei Direto
Buscar
Pergunta 31 (1 ponto) Apresenta-se, a seguir, o código-fonte escrito em linguagem C. 1 #include 2 int main() { 3 int a = 10; 4 int *ptr = &a; 5 printf("Valor de a: %d\n", a); 6 printf("Endereço de a: %p\n", &a); 7 printf("Valor armazenado em ptr: %p\n", ptr); 8 printf("Valor apontado por ptr: %d\n", *ptr); 9 return 0; 10 } Considerando o código apresentado, avalie as afirmações a seguir. I) O valor impresso por printf("Valor de a: %d\n", a); será 10, pois a foi inicializado com esse valor. II) A operação *ptr (desreferenciação) permite acessar o valor armazenado no endereço de memória apontado por ptr, que é 10 nesse caso. III) O valor impresso por printf("Endereço de a: %p\n", &a); será igual ao valor impresso por printf("Valor armazenado em ptr: %p\n", ptr);, pois ptr armazena o endereço de memória da variável a. IV) Se uma nova linha de código a = 20; for adicionada logo após a declaração de ptr, o valor impresso por printf("Valor apontado por ptr: %d\n", *ptr); continuará sendo 10, pois ptr não foi atualizado. É correto o que se afirma em Opções da pergunta 31: A) I, apenas. B) II, apenas. C) I, II e III, apenas. D) II, III e IV, apenas. E) I, II, III e IV.
User badge image
Paulino

anteontem

Respostas

User badge image

Ed Verified user icon

anteontem

Vamos analisar cada uma das afirmações: I) O valor impresso por printf("Valor de a: %d\n", a); será 10, pois a foi inicializado com esse valor. Verdadeiro. A variável `a` foi inicializada com 10, então essa afirmação está correta. II) A operação *ptr (desreferenciação) permite acessar o valor armazenado no endereço de memória apontado por ptr, que é 10 nesse caso. Verdadeiro. A desreferenciação de `ptr` (`*ptr`) acessa o valor da variável `a`, que é 10. III) O valor impresso por printf("Endereço de a: %p\n", &a); será igual ao valor impresso por printf("Valor armazenado em ptr: %p\n", ptr);, pois ptr armazena o endereço de memória da variável a. Verdadeiro. `ptr` armazena o endereço de `a`, então ambos os valores impressos serão iguais. IV) Se uma nova linha de código a = 20; for adicionada logo após a declaração de ptr, o valor impresso por printf("Valor apontado por ptr: %d\n", *ptr); continuará sendo 10, pois ptr não foi atualizado. Verdadeiro. `ptr` ainda aponta para o endereço de `a`, mas como `a` foi alterado para 20, a afirmação está incorreta. O valor impresso por `*ptr` será 20, pois `ptr` ainda aponta para `a`. Agora, vamos ver quais afirmações são verdadeiras: - I: Verdadeira - II: Verdadeira - III: Verdadeira - IV: Falsa Portanto, as afirmações corretas são I, II e III. A alternativa que contém todas as afirmações verdadeiras é: C) I, II e III, apenas.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina