Olá gente, hoje vou falar um pouco sobre ponteiros, quem já programou em C sabe ou deveria saber usar ponteiros, pois os mesmos são de certo modo essenciais na liguagem (se não fosse não tinham colocado), enfim, ponteiros nada mais é do que uma varivável que cujo conteúdo é o endereço na memória de outra variável, os ponteiros são muito usados em estrutura de dados com C, nas listas, pilhas, filas, e árvores, não sabe o que é isso? (manda uma mensagem que eu terei prazer de fazer outra postagem explicando o que é).
Dito o que são ponteiros, continuaremos, alguns já usaram ponteiros para int ( int *myint), para strings (char * myarray), mas a pergunta é e ponteiros pra funções?
Sim! ponteiros pra funções...
Ex:
int (*ptFunc)();
e a atribuição é dada da seguinte forma;
sendo uma função:
int soma (int a, int b){
return a+b;
}
int (*ptfunc)();
// Atribuição da função a um ponteiro de funçãoptFunc = &soma;
Usa-se o ponteiro normalmente como se usaria a função normal
Exemplo de um programa em C:
#include
/* funções simulando métodos e struct simulando o objeto*/
int envelhecer(int *i){
return ++(*i);
}
struct {
int idade;
char nome[100];
int (*func)();
}pessoa;
int main(){
struct pessoa;
pessoa.idade = 5;
pessoa.func = &envelhecer;
printf("%d\n", pessoa.idade);
printf("idade = %d\n", pessoa.func(&pessoa.idade));
printf("%d\n", pessoa.idade);
}
int envelhecer(int *i){
return ++(*i);
}
struct {
int idade;
char nome[100];
int (*func)();
}pessoa;
int main(){
struct pessoa;
pessoa.idade = 5;
pessoa.func = &envelhecer;
printf("%d\n", pessoa.idade);
printf("idade = %d\n", pessoa.func(&pessoa.idade));
printf("%d\n", pessoa.idade);
}
0 comentários:
Postar um comentário