Appunti di programmazione

Appunti per il corso universitario di programmazione, riferito al linguaggio ANSI C
Redatti all'università di Venezia

ARGOMENTI

STRUTTURA COMPUTER

DEFINIZIONI

TASTIERA E TIPI

AMBIENTE E MEMORIA

COMANDI

FUNZIONI E PROCEDURE

TIPI DERIVATI

PUNTATORI

STRINGHE

ARRAY DI PUNTATORI

STRUTTURE

TYPEDEF E ENUM

PUNTATORI A PROCEDURE

ALLOCAZIONE DINAMICA

LISTE

ALGORITMI

ERRORI

PUNTATORI A PROCEDURE

tipo_restituito (*nome_puntatore_funzione) (tipo_parametri);


int A(int b){

return a*b;

}


quando dichiaro questa procedura viene memorizzata in qualche locazione di memoria


int A(int b){

return b*3;

}

int B(int b){

return b*2;

}


typedef ...

Fun f;

f = A;

f = B;

(*f)(3)


dichiarare = scrivere il prototipo:

int f(int x);


definire = prototipo + corpo:

int f(int y){return y + 1}


es.

int f(int y){return y + 1} // introduco un identificatore associato ad una costante di tipo puntatore a una procedura che prende in input un valore int e restituisce un valore int


typedef int(*F)(int x) // F è l'insieme delle funzioni che prendono un intero e restituiscono un valore di tipo int


F x; // x è un puntatore a una certa zona di memoria che contiene determinate istruzioni

x = f;

y = f(2); // y = 3

y = (*x)(2); // y = 3

attenzione alle parentesi:

int *F (int x); // è la dichiarazione del prototipo di una procedura che prende un valore intero e restituisce un indirizzo di variabile int

int (*F) (int x); // è una dichiarazione di una variabile di tipo puntatore a procedura che prende un intero e restituisce un intero


es.

double seno(double a) { return sin(a); }

double coseno(double a) { return cos(a); }

double tangente(double a) { return tan(a); }


int main() {

double(*goniometrica[])(double)={seno,coseno,tangente};

int scelta;

scanf("%d",&scelta);

printf("%lf\n",(*goniometrica[scelta])(0));

}

Ritorna sopra | Home page