• Matéria: Informática
  • Autor: RobertoRed
  • Perguntado 9 anos atrás

Suponha um modelo de computador em que uma variável do
tipo char ocupa 1 byte, a do tipo int ocupa 6 bytes e a do
tipo float ocupa 8 bytes.  

Suponha
ainda que  há  três variáveis do  tipo  ponteiro: p,
x, z , em que p  aponta  para  uma variável
do tipo char armazenado no endereço 4090, x aponta para  uma
variável do tipo int armazenada no endereço 5092 e y aponta para 
uma variável do tipo float armazenada no endereço 7094. Foram
realizadas  as  seguintes operações  de  aritmética de
ponteiros:  p+1, x+2 e z+3, determine  os 
endereços resultantes :

a. 4091, 5098, 7111
   b. 4091, 5104, 7118


c. 4091, 5104, 7124
 

Respostas

respondido por: andersonhipolito
1
Operações matemáticas com ponteiros precisa tomar cuidado. Segue meu raciocínio:

p->char =1 (variável 'p' aponta para char que ocupa 1 byte)
x->int =6  (variável 'x' aponta para int que ocupa 6 byte)
z->float=8  (variável 'z' aponta para float que ocupa 1 byte)

Realizando as operações de soma de posições de memória teremos:
p+1 : 4090 +1= 4091
x+2 : 5092 + 2*6= 5092+12= 5104
z+3 : 7094 + 3*8=7094+24= 7118

Espero ter ajudado

andersonhipolito: RETIFICAÇÃO:
z->float=8 (variável 'z' aponta pata float que ocupa 8bytes)
Perguntas similares