Prof: Sergio Hermenegildo FEMASS Ponteiros – Vetores e Strings Até agora vimos a utilização de ponteiros para tipo de dados convencionais.
Veremos então quão simples é fazer o ponteiramento
para vetores. Para tal, basta sabermos que: nome_da_variável[índice]
é o mesmo que *(nome_da_variável+índice)
e que o ponteiro de um vetor aponta pro seu índice[0]
Não falei que era simples...
2 Programação II - Prof. Sergio Hermenegildo
Ponteiros – Vetores e Strings Exemplo Vejamos como funciona... #include <stdio.h> void main (void) { int matrix [10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int *p; p=matrix; printf ("O terceiro elemento do vetor e: %d",p[2]); printf ("\nO terceiro elemento do vetor via ponteiro e: %d",*(p+2)); }
Neste exemplo, utilizamos p recebendo o endereço de
matrix[0] (poderíamos ter escrito assim também). E, como dito, ao invés do índice, faremos a adição ao ponteiro, que, internamente, fará com que ele aponte para o endereço do índice indicado. 3 Programação II - Prof. Sergio Hermenegildo Ponteiros – Vetores e Strings Tendo em vista que uma string é um vetor de caracteres, tudo funciona de forma igual, aonde só precisamos saber que:
A string acaba com \0 e podemos verificar com ==‘\0’ ou com
while(*p) Podemos fazer uma inicialização de string via char *ptr = “Ola Mundo” void main() { char str[80], *p; printf("digite uma string em letra maiuscula: "); gets(str); printf("aqui esta a string em letra minuscula: "); p = str; /* obtém o endereço de str*/ while (*p) printf("%c", tolower(*p++));//desta forma não precisamos do i }
4 Programação II - Prof. Sergio Hermenegildo
Ponteiros: Exercícios
1. Crie uma função que receba um vetor de 10 números já
preenchidos e os imprima em ordem reversa. (basta chamar a função passando apenas o nome do vetor sem [])
2. Crie uma função que receba um vetor de 10 números já
preenchidos, calcule e informe a média
3. Obtenha uma string e informe a quantidade de caracteres
‘a’ existentes.
4. Crie uma função que receba uma string já preenchida e um
caracter, e imprima a string desde o caracter encontrado