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

1

Respostas

2014-04-30T12:42:03-03:00
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
1 5 1
RETIFICAÇÃO:
z->float=8 (variável 'z' aponta pata float que ocupa 8bytes)