Assumindo as seguintes declarações em C++: int y = 5; int ...
Assumindo as seguintes declarações em C++:
int y = 5;
int *yPtr;
é correto afirmar que o comando yPtr = &y;
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B.
Vamos entender o porquê:
Em C++, um conceito fundamental é o uso de ponteiros. Um ponteiro é uma variável que armazena o endereço de memória de outra variável. Isso pode ser um pouco abstrato no começo, mas é essencial para manipulação direta de memória e eficiência em programas.
No código apresentado, temos a variável int y = 5;
que armazena o valor 5 em uma posição específica da memória. A declaração int *yPtr;
inicializa um ponteiro que pode armazenar o endereço de uma variável do tipo int
.
O comando yPtr = &y;
é crucial aqui. O operador &
em C++ é o operador de endereço, e é usado para obter o endereço da variável y
. Então, essa linha atribui o endereço de memória de y
à variável yPtr
. Por isso, a alternativa B está correta: atribuímos o endereço da variável y
à variável ponteiro yPtr
.
Agora, vamos analisar as alternativas incorretas:
A - Esta afirmação está incorreta porque não atribuímos o valor de y
à yPtr
, mas sim o endereço de y
.
C - Essa alternativa está errada. O comando não atribui o endereço de yPtr
à y
, mas sim ao contrário: o endereço de y
é atribuído à yPtr
.
D - Esta opção é falsa porque não estamos atribuindo um valor de um ponteiro à variável y
. Estamos lidando com endereços, não com valores diretos de variáveis.
E - Isso está incorreto porque a linha de código não atribui NULL
ao ponteiro yPtr
. Ao invés disso, atribui o endereço de y
a yPtr
.
Compreender o uso de ponteiros e operadores relacionados, como &
e *
, é essencial para um bom entendimento de C++ e muitos aspectos de programação que exigem manipulação eficiente de memória.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo