01 Ponteiros Exercicios
Instruções:
1. Seja vet um vetor de 4 elementos. Suponha que no momento da execução, vet[0] tenha sido armazenado no endereço 1000 de memória. Suponha os seguintes tamanhos de dados para a arquitetura em questão:
- char = 1 byte
- int = 2 bytes
- float = 4 bytes
- double = 8 bytes. Qual o valor de vet+1, vet+2 e vet+3 se:
a) vet for declarado como char?
b) vet for declarado como int?
c) vet for declarado como float?
d) vet for declarado como double?
2. Seja o seguinte trecho de programa: int i=3,j=5; int *p, *q; p = &i; q = &j;
Qual é o valor das seguintes expressões ?
a) p == &i;
b) *p - *q
c) **&p
d) 3* - *p/(*q)+7 3. Qual será a saída deste programa supondo que i ocupa o endereço 1000 na memória?
#include <stdio.h>
#include <conio.h>
int main()
{
int i=5, *p; p = &i;
printf (“%d\n”, p); printf (“%d\n”, *p+2); printf (“%d\n”, **&p); printf (“%d\n”, 3**p);; printf (“%d\n”, **&p+4);
getch();
}
4. Considere o código abaixo e apresente o resultado de cada expressão. Cuidado pois algumas atribuições são ilegais.
int i = 100, j = 2, k; int *p = &i, *q = &j, *r;
a) r = &i;
b) *r = &j;
c) r = &*&i;
d) k = (*&)j;
e) k = *&j;
f) k = *&*&j;
g) r = *p;
h) k = (*p)+++*q++;
i)k = (*p)++ + ++*q; 5. Assumindo que pulo[] é um vetor do tipo int, quais das seguintes expressões referenciam o valor do quarto elemento da matriz?
a) *(pulo + 3)
b) *pulo + 3
c) pulo + 3
d) (pulo + 3) 6. Supor a