Você está na página 1de 2

Lista de Exerccios sobre Ponteiros

1) Seja o seguinte techo de programa:


int
int
p =
q =

a = 7, b = 11;
*p, *q;
&a;
&b;

Qual ser o valor calculado pelas seguintes expresses?


a) p == &a
b) *p - *q
c) **&q

d) 3**p

2) Com base no seguinte trecho de programa e supondo que a ocupa o endereo de memria 1024,
qual ser o resultado do printf?
int a = 2;
int *p;
p = &a;
printf("%p %d %d %d\n",p, (*p)+1, *((p+2) - (1*2)), **&p);
3) Sendo a uma varivel int e p e q ponteiros para int, classifique as seguintes expresses como
vlidas ou invlidas.
a) p = a; b) a = *p; c) p = &a; d) p++;
g) *p = *q;h) *p = *&q; i) *p++ + *q;

e) *p++;

f) *p = a;

j) *q + *p - &a; l) a++ * *p**q;

4) Sendo array[] um vetor, qual das expresses abaixo mostra o valor do seu 5 elemento?
a) *(array + 5);b) array[5];
c) *array + 5;
d) *(array + 4);
e) *&array + 5;
5) Analise o trecho de cdigo abaixo e responda:
int array[10] = {0,1,2,3,4,5,6,7,8,9};
int a = 3,b;
int *p;
p = array;
p++;
p++;
b = *p;
*p = a * b;
*array = *p + b;
p = array+2;
a = *(array+3);
printf("%d %d %d\n",*p, a, b);

a) Qual o resultado do printf?


b) Qual o valor final da posio 0 do array?
6) O que faz o seguinte programa:
#include <stdio.h>
main(){
int vet[] = {4,9,13};
int i;
for(i=0;i<3;i++){
printf("%d ",*(vet+i));
}
}
7) Seja array um vetor de 4 elementos: Tipo array[4]. Supondo que aps a declarao o array
esteja ocupando do endereo 4092 ( posio 0 do array) e que nessa mquina o tipo char 1 byte,
o int ocupada 2 bytes, o float 4 bytes e o double 8 bytes, responda:
Qual o valor de array+1, array+2 e array+3 se:
a) array for declarado como char?
b) array for declarado como int?
c) array for declarado como float?
d) array for declarado como double?

Você também pode gostar