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:
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
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
Perguntas similares
7 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
z->float=8 (variável 'z' aponta pata float que ocupa 8bytes)