Os ponteiros são variáveis que ocupam uma posição da memória, mas estão preparados para armazenar endereços de outras variáveis. Observe o trecho de código em linguagem C a seguir:
char * pc;
float *px;
float x;
x = 6.5;
px = &x;
pc = (char*) px;
Após analisar o código, é correto afirmar que:
Alternativa 1:
px + 1 e (*pc) + 1 apontam para as mesmas posições de memória.
Alternativa 2:
As variáveis px e pc apontam para posições de memória diferentes.
Alternativa 3:
A utilização de (char*) é um cast que converte um tipo de dados em outro.
Alternativa 4:
O trecho do código px = &x não irá funcionar, pois a linguagem C não aceita o “&” como operador para ponteiro.
Alternativa 5:
Se px é um ponteiro para a variável x de tipo float, a expressão px + 1 se refere ao byte seguinte na memória, a partir do endereço de x.
Soluções para a tarefa
Respondido por
21
Alternativa 3:
A utilização de (char*) é um cast que converte um tipo de dados em outro.
*px e *pc estão recebendo o endereço de memoria de x
A utilização de (char*) é um cast que converte um tipo de dados em outro.
*px e *pc estão recebendo o endereço de memoria de x
Respondido por
16
Alternativa 3: A utilização de (char*) é um cast que converte um tipo de dados em outro.
A linguagem C caracteriza-se por utilizar uma estrutura de condição que efetua diversos testes sobre um dado de uma mesma variável. Um dos elementos dessa linguagem são os ponteiros, que representam variáveis que ficam em uma posição de memória.
A preparação dos ponteiros visa o armazenamento de endereços de outras variáveis. O trecho do código descrito na questão apresenta a utilização de (char*) como um cast para a conversão de um tipo de dados em outro tipo.
Bons estudos!
Perguntas interessantes