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);
}
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.