É válido lembrar que ponteiro é uma variável que contém um endereço de memória.
Também quero lembrar que funções em algumas vêzes podem retornar um valor para a função main(); fica bem claro que o valor retornado é do tipo declarado no protótipo da função.
Programas mais complexos em C algumas vêzes nessecitam de funções
que retornam um ponteiro, isto é, um endereço de memória.
Criar uma função que retorna um ponteiro em C é muito fácil, basta colocar um asterisco antes do nome da função.
No exemplo mostrado aqui, temos a função *primo_Nprimo(); que como você ver retorna um ponteiro que será usado para uma alteração
numa posição específica do vetor original. Esta função é capaz de mostrar números primos e não primos contidos no vetor.
Veja abaixouma imagem do programa em execução:
Veja abaixo o código do programa:
Também quero lembrar que funções em algumas vêzes podem retornar um valor para a função main(); fica bem claro que o valor retornado é do tipo declarado no protótipo da função.
Programas mais complexos em C algumas vêzes nessecitam de funções
que retornam um ponteiro, isto é, um endereço de memória.
Criar uma função que retorna um ponteiro em C é muito fácil, basta colocar um asterisco antes do nome da função.
No exemplo mostrado aqui, temos a função *primo_Nprimo(); que como você ver retorna um ponteiro que será usado para uma alteração
numa posição específica do vetor original. Esta função é capaz de mostrar números primos e não primos contidos no vetor.
Veja abaixouma imagem 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 *primo_Nprimo ( int a [ ], int b [ ], int y ) {
int i, j, primo, Nprimo, s = 0;
textcolor ( LIGHTBLUE );
gotoxy ( 23, 9 );
printf ( "Apresentando Números não
primos entre 0 e 15" );
textcolor ( LIGHTGREEN );
gotoxy ( 23, 11 );
for ( i = 0; i < 15; i++ ) {
for ( j = 2, primo = 1; j < a [ i ]; j++ )
if ( ( a [ i ] % j ) == 0 )
primo = 0;
if ( primo ) {
b [ s ] = a [ i ];
s++;
}
for ( j = 2, Nprimo = 0; j < a [ i ]; j++ )
if ( ( a [ i ] % j ) == 0 )
Nprimo = 1;
if ( Nprimo )
printf ( " %d
", a [ i ] );
}
getche ( );
return a + y;
}
int main ( ) {
system ( "title RETORNANDO
PONTEIRO" );
Janela5 ( );
int a [ ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
int b [ 15 ];
int i, s = 0;
textcolor ( LIGHTRED );
gotoxy ( 33, 3 );
printf ( "RETORNANDO PONTEIRO" );
textcolor ( LIGHTBLUE );
gotoxy ( 23, 5 );
printf ( "Apresentando abaixo o
vetor original " );
textcolor ( LIGHTGREEN );
gotoxy ( 15, 7 );
for ( i = 0; i < 15; i++ ) {
printf ( " %d
", a [ i ] );
}
getche ( );
*primo_Nprimo ( a, b, 7 ) = 99;
textcolor ( LIGHTBLUE );
gotoxy ( 23, 13 );
printf ( "Apresentando Números
primos entre 0 e 15 " );
textcolor ( LIGHTGREEN );
gotoxy ( 23, 15 );
for ( s = 1; s < b [ s ]; s++ ) {
printf ( " %d
", b [ s ] );
}
textcolor ( LIGHTBLUE );
gotoxy ( 15, 17 );
printf ( "Apresentando abaixo o
vetor modificado pelo ponteiro " );
textcolor ( LIGHTGREEN );
gotoxy ( 15, 19 );
for ( i = 0; i < 15; i++ ) {
printf ( " %d
", a [ i ] );
}
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 36, 23 );
printf ( "MUITO OBRIGADO" );
getche ( );
exit ( 0 );
return ( 0 );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.