Utilizando a aritmética de ponteiros:
main ()
{
int *ponteiro, vetor_inteiros[4] = {0, 10, 20, 30};
ponteiro = &vetor_inteiros[0];
ponteiro+= 2;
printf(“Valor apontado: %d \n”, *ponteiro);
...
}
É correto afirmar:
a) O conteúdo do ponteiro é 20.
b) O ponteiro possui 4 posições.
c) O conteúdo apontado pelo ponteiro é o endereço do vetor pulando 2 endereços desde a primeira posição do vetor.
d) O compilador C reconhece o tipo do ponteiro e salta uma quantidade em bytes equivalente ao tipo int, seguindo a soma realizada no programa.
e) nda
Fonte: http://hermes.ucs.br/carvi/cent/dpei/snsoares/ELE0219/Textos/a05ex05.pdf
Assinar:
Postar comentários (Atom)
3 comentários:
Resposta: D
Resposta: D.
O conteúdo do ponteiro é o endereço de memória da variável que ele aponta e não 20, este número é o conteúdo apontado pelo ponteiro, ou seja, as alternativas "a" e "c" estão trocadas nesse sentido. A "b" está errada pois o ponteiro só está apontando um índice do vetor, o vetor possui 4 posições, mas o ponteiro não.
Explicando melhor:
O conteúdo do ponteiro é o endereço de memória do vetor ("A" errada).
O conteúdo apontado pelo ponteiro é 20 ("C" errada).
O ponteiro só tem 1 posição e o vetor tem 4 posições ("B" errada).
Postar um comentário