int
, short
, long
, long long
, char
unsigned int
,..., unsigned char
, float
, double
, long double
.
Dichiarazione ed inizializzazione di variabili e loro rappresentazione in memoria.
Operatori aritmetici (+
, -
, *
, /
, %
, ++
,
--
, +=
, -=
, *=
, /=
, %=
),
operatori relazionali (<
, >
, <=
, >=
, ==
, !=
),
operatori logici (||
, &&
, !
).
Assegnamenti. Conversioni implicite e conversioni esplicite.
Istruzioni di selezione: if () - else
, switch () - case
, ( ? : )
.
Istruzioni iterative: for ( ; ; )
, while ()
, do - while ()
. Contatori e sentinelle.
I vantaggi della programmazione strutturata.
Formattazione dell'input e dell'output con printf()
e scanf()
, specifiche di conversione, stdio.h
.
La libreria standard e il preprocessore (direttiva #include
).
#include
. Il tipo
void
. Regole di visibilità. Funzioni ricorsive.
Il main()
con argomenti.
string.h
) per la manipolazione di stringhe: strlen()
,
strcmp()
, strcpy()
.
Dichiarazione, inizializzazione
e utilizzo di vettori. Rappresentazione in memoria.
Vettori multidimensionali. Vettori a dimensione variabile. Vettori di stringhe. Dichiarazione,
inizializzazione ed utilizzo di strutture (struct
).
Dichiarazione, inizializzazione ed utilizzo di unioni (union
).
Strutture che contengono altre strutture od unioni. Strutture che contengono vettori.
Vettori di strutture. Enumerazioni (enum
). La parola
chiave typedef
. La direttiva #define
.
&
e l'operatore
di deriferimento (o indirezione) *
. Il qualificatore const
.
Allocazione dinamica della memoria: operatore sizeof
e le funzioni (in stdlib.h
)
malloc()
, free()
e realloc()
. Il tipo void *
.
Relazione tra puntatori e vettori. Vettori di puntatori. Allocazione dinamica di matrici. Aritmetica dei puntatori.
Puntatori a funzioni. La funzione qsort()
in stdlib.h
.
stdio.h
)
fopen()
, fclose()
,
fgetc()
, fputc()
,
fgets()
, rewind()
. Lettura e scrittura
formattata con fprintf()
e fscanf()
. Posizionamento del
cursore: fseek()
, ftell()
.
Lettura e scrittura di file ad accesso casuale:
fwrite()
, fread()
.
static
.
H.M. Deitel, P.J. Deitel C: Corso completo di programmazione Apogeo, III edizione, 2007.
A. Kelley, I. Pohl C: Didattica e programmazione Pearson (Addison Wesley), IV edizione, 2004.
S.G. Kochan Programmare in C: Introduzione al linguaggio Pearson, III edizione, 2011.
B.W. Kernighan, D.M. Ritchie Il linguaggio C - Principi di programmazione e manuale di riferimento Pearson (Prentice Hall), 2004.
Il classico manuale del linguaggio C, più conciso ed agile dei libri di Kelley&Pohl e Deitel&Deitel però meno adatto per il principiante.S.P. Harbison III, G.L. Steele Jr C: A Reference Manual Prentice Hall, 2002.
Un manuale di riferimento per il linguaggio C estremamente curato e preciso. Utilissimo per risolvere dubbi circa: ciò che è C standard (ANSI/ISO) e ciò che non lo è, portabilità, compatibilità con il C++, ecc. Fortemente consigliato a chiunque voglia fare un uso non occasionale del linguaggio C.B.W. Kernighan, R. Pike The Practice of Programming Addison Wesley.
Tratta in modo sintetico e significativo tutti gli aspetti della programmazione. Dalle strutture dati ed algoritmi al debugging e testing, dallo stile di programmazione alla progettazione di librerie, passando per l'analisi delle prestazioni e i metodi per migliorare la portabilità. I linguaggi considerati sono: C, C++ e Java.J. Bentley Programming Pearls Addison Wesley.
Molti dei temi trattati nel libro di Kernighan e Pike sono qui elaborati in modo originale e stimolante. Pieno di divertenti ed istruttivi aneddoti che mostrano la reale differenza tra la teoria e la pratica della programmazione e financo dell'ingegneria del software. Usa i linguaggi C e C++.Paul Graham Hackers & Painters O'Reilly Media.
Non è un libro sulla programmazione in C. È invece un libro sul mondo della programmazione, dai programmatori alle imprese ai linguaggi di programmazione. Una divertente e avvicente riflessione sulla natura dello sviluppo software fondata su esperienze illuminanti e piena di idee brillanti e controcorrente. Un affresco sul passato e il presente di questa attività con profonde intuizioni sul suo futuro. Una lettura indispensabile per chiunque si interessi, a qualsiasi titolo, di sviluppo software.