domingo, 22 de fevereiro de 2015

Indexando ponteiros

Há sem dúvidas grande relação entre matrizes e ponteiros em C,
e o interessante é que o endereço da primeira posição de uma matriz é um ponteiro.
Sabemos que um ponteiro é uma variável que guarda um endereço de memória, e
quase não conseguimos programar em C sem usar ponteiros,
a não ser que os programas sejam simples demais.
Na realidade um ponteiro pode ser indexado como se fosse uma matriz,
porque o C trata matrizes como ponteiros apontando para o primeiro elemento da matriz.
Neste código mostro um excelente exemplo de como indexar ponteiros como se fosse matriz.

Veja abaixo imagens do programa em execução:



Veja abaixo o código do programa:

#include <conio.h>
#include <stdio.h>
void Janela5(){
    int lin, col;
    col = 0;
    for ( lin = 2; lin <= 24; lin++ )
        for ( col = 2; col <= 78; col++ ){
            gotoxy(col,lin);textbackground(BLUE);printf(" ");
        }
}
int main (){
    system("title INDEXANDO PONTEIROS");
    char *index = "INDEXANDO PONTEIROS";
    char in_ex [ ] = {'A'};
    char *pont;
    pont = in_ex;Janela5();
    textcolor(LIGHTRED);gotoxy(33,3);printf(index);textcolor(LIGHTBLUE);
    gotoxy(10,5);printf ("A Primeira letra do Alfabeto               é:          %c",*pont + 0);Sleep(800);
    gotoxy(10,6);printf ("A Segunda  letra do Alfabeto               é:          %c",*pont + 1);Sleep(800);
    gotoxy(10,7);printf ("A Terceira letra do Alfabeto               é:          %c",*pont + 2);Sleep(800);
    gotoxy(10,8);printf ("A Quarta   letra do Alfabeto               é:          %c",*pont + 3);Sleep(800);
    gotoxy(10,9);printf ("A Quinta   letra do Alfabeto               é:          %c",*pont + 4);Sleep(800);
    gotoxy(10,10);printf ("A Sexta    letra do Alfabeto               é:          %c",*pont + 5);Sleep(800);
    gotoxy(10,11);printf ("A Sétima   letra do Alfabeto               é:          %c",*pont + 6);Sleep(800);
    gotoxy(10,12);printf ("A Oitava   letra do Alfabeto               é:          %c",*pont + 7);Sleep(800);
    gotoxy(10,13);printf ("A Nona     letra do Alfabeto               é:          %c",*pont + 8);Sleep(800);
    gotoxy(10,14);printf ("A Décima   letra do Alfabeto               é:          %c",*pont + 9);Sleep(800);
    gotoxy(10,15);printf ("A Décima  Primeira  letra do Alfabeto      é:          %c",*pont + 10);Sleep(800);
    gotoxy(10,16);printf ("A Décima  Segunda letra do Alfabeto        é:          %c",*pont + 11);Sleep(800);
    gotoxy(10,17);printf ("A Décima  Terceira letra do Alfabeto       é:          %c",*pont + 12);Sleep(800);
    gotoxy(10,18);printf ("A Décima  Quarta letra do Alfabeto         é:          %c",*pont + 13);Sleep(800);
    gotoxy(10,19);printf ("A Décima  Quinta letra do Alfabeto         é:          %c",*pont + 14);Sleep(800);
    gotoxy(10,20);printf ("A Décima  Sexta  letra do Alfabeto         é:          %c",*pont + 15);Sleep(800);
    gotoxy(10,21);printf ("A Décima  Sétima letra do Alfabeto         é:          %c",*pont + 16);Sleep(800);
    Sleep(1000);gotoxy(31,23);
    textcolor(YELLOW);printf("PRESSIONE QUALQUER TECLA");
    getche();system("cls");system("Color F0");Janela5();
    textcolor(LIGHTRED);gotoxy(29,3);printf(index);
    textcolor(LIGHTGREEN); gotoxy(10,5);printf ("Continuação...");textcolor(LIGHTBLUE);
    gotoxy(10,7);printf ("A Décima  Oitava letra do Alfabeto         é:          %c",*pont + 17);Sleep(800);
    gotoxy(10,8);printf ("A Décima  Nona letra do Alfabeto           é:          %c",*pont + 18);Sleep(800);
    gotoxy(10,9);printf ("A Vigésima  letra do Alfabeto              é:          %c",*pont + 19);Sleep(800);
    gotoxy(10,10);printf ("A Vigésima Primeira letra do Alfabeto      é:          %c",*pont + 20);Sleep(800);
    gotoxy(10,11);printf ("A Vigésima Segunda letra do Alfabeto       é:          %c",*pont + 21);Sleep(800);
    gotoxy(10,12);printf ("A Vigésima Terceira letra do Alfabeto      é:          %c",*pont + 22);Sleep(800);
    gotoxy(10,13);printf ("A Vigésima Quarta letra do Alfabeto        é:          %c",*pont + 23);Sleep(800);
    gotoxy(10,14);printf ("A Vigésima Quinta letra do Alfabeto        é:          %c",*pont + 24);Sleep(800);
    gotoxy(10,15);printf ("A Vigésima Sexta letra do Alfabeto         é:          %c",*pont + 25);Sleep(1800);
    textcolor(LIGHTGREEN);gotoxy(31,19);printf("Programa criado por:");
    gotoxy(36,21);printf("Samuel Lima");
    Sleep(1800); textcolor(LIGHTRED);gotoxy(35,23);
    printf ("MUITO OBRIGADO");getche();exit(0);
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.