/*….*/ Inserisce commenti
#include Inclusione delle librerie
Assegna un valore ad una variabile.
operatore di
= Quando la variabile è a sinistra, si usa il suo indirizzo per
assegnamento modificare il suo valore; quando è a destra si usa il valore
pow (a,b) A elevato alla b Si trova nella libreria math.h
Visualizza una sequenza di caratteri
Il carattere‘ \ ’ (backslash) si premette ai
“caratteri di escape”
\n Nuova linea
istruzione di stampa
printf (“…”); \t Tabulazione
(output) \b Torna indietro di un carattere
\\ Stampa il carattere \
\” Stampa il carattere “
Acquisisce un dato in ingresso dall’utente
e lo alloca all’indirizzo della locazione di
memoria corrispondente alla variabile.
Interrompe il flusso d’esecuzione
%d int Intero decimale
%ld long Lungo (32 bit)
%hd short Corto (16 bit)
scanf (“…”, &..); input %c char Carattere ASCII (1 byte)
%s Stringa
Numeri con la virgola
%f (4 byte)
float
%e Numeri con la virgola in forma esponenziale
%lf double Lungo (8 byte)
Indica a termine di una funzione che il
Return 0 programma è terminato correttamente
Utilizzato dopo la scanf per eliminare i caratteri
fflush(stdin) in coda che fanno terminare il programma (\n)
se n e m sono int ma voglio la divisione in float
Cast esplicito x = (float) m/n senza variare il tipo delle variabili che rimangono
int
const Const tipo nome = valore
Definire costante Define #define nome valore
Undef #undef nome
do {
istr 1
Ciclo do-while .. Esegue una volta il ciclo e poi verifica la condizione
istr N
} while (condizione);
While (condizione) {
Istr 1 Verifica prima la condizione e poi entra nel ciclo
..
istr N} For (inizio; condizione; incremento) {
Istr 1
Ciclo for ..
istr N
}
switch ( variabile ) {
case v : istr 1; break;
1 …..
Switch case v : istr N; break;
N
default: istr U; break;
}
break; Consente di uscire dal corpo di un ciclo o da uno switch
Interrompe l’iterazione corrente di un ciclo e dà inizio all’iterazione successiva dopo aver
continue; eseguito l’incremento
Gruppo di celle consecutive con elementi dello stesso tipo. Il primo elemento ha indice 0
Per eccedere ad un elemento nomearray [posizione]
e riempirlo nomearray [posizione] = valore
Per creare un array tipo nomearray [numeroelementi];
tipo nomearray [numeroelementi]
e riempirlo = {elem1, .., elemN};
for (i = 0; i < numeroelementi; i++) {
o riempirlo da terminale printf ("Scrivi un intero: ");
scanf ("%d", &nomearray[i]);}
int array1[dimensione], array2[dimensione], i;
Ricopiare array1 in array2 for (i = 0; i<dimensione; i++) {
array array2[i] = array1[i]; }
Int dato, risultato = - 1, n;
int array[size];
for (n = 0; n < size; n++) {
Ricerca di un elemento if (array[n]==dato) {
risultato = n;
break;
}}
for (j = 0; j < size - 1; j++) {
for (i = 0; i < size – 1; i++) {
if (vet[i] > vet[i+1]) {
Ordinare un array con bubblesort aux = vet[i];
vet [i] = vet [i+1]
vet [i+1] = aux
}}}
Array di caratteri che termina con \0.
Le funzioni sono contenute nella libreria string.h
char nomestringa[] = “parola”;
char nomestringa = {‘p’, ‘a’, ‘r’, ‘o’, ‘l’,
Inizializzazione ‘a’, ‘\0’} ;
strcpy (nomestringa, “parola”);
Copia stringa1 in stringa2 strcpy (stringa2, stringa1);
Copia n caratteri di stringa1 in stringa2 strncpy (dtringa2, stringa1, n)
Stringa Lunghezza x = strlen (nomestringa);
Riempire stringa da terminale scanf (“%s”, nomestringa);
Confrontare due stringhe
Se restituisce 0 sono uguali
Se restituisce un numero < 0 stringa1 è più strcmp (stringa1, stringa2)
corta
Se restituisce un numero > 0 stringa1 è più
lunga
Consente di concatenare stringa2 a stringa1 strcat (stringa1, stringa2)
Array a più dimensioni.
Le righe orizzontali sono chiamate righe, mentre quelle verticali sono le colonne
for(i = 0; i < DIM; i++) {
for(j = 0; j <DIM; j++) {
Riempire una matrice da terminale printf("Dammi elemento (%d,%d)\n",i,j);
Matrici scanf("%d", &M[i][j]); }}
for(i = 0; i < DIM; i++) {
for(j = 0; j < DIM; j++) {
e visualizzarla printf("%4d", M[i][j]); }
printf("\n"); }
Memorizza aggregazioni di dati di diversa natura.
Ogni dato è chiamato campo
char strcpy (nome.campo,“stringa”);
Assegnamento ai campi int nome.campo)=numero
char scanf (“%s”, nome.campo);
Da terminale int scanf (“%d”, &nome.campo);
Struct Assegnare una struct ad un’altra identica struct1 = struct2
if (strcmp(nome.campochar,
Confrontare due struct nome.campochar2) ==0 && nome.campoint
==nome.campoint2))
typedef struct {
tipo campo1
Creare un tipo di dato tipo campo2
…
} nomestruct;
Variabili che hanno come valore l’indirizzo di un’altra variabile
%p printf (“indirizzo di x: %p”, &x);
Typedef tipo * tiporef;
tiporef p = &x;
Dichiarazione Int * p;
p = &x
Si impone che il puntatore p punti alla
p = q stessa variabile a cui punta q
Si assegna il valore della variabile puntata
*p = *q da q al valore della variabile puntata da p
if ( p==NULL )
Test di nullità if ( !p )
Puntatori if ( p != NULL )
Test di non nullità if (p)
p→primocampo
Nelle struct o
(*p).primocampo
Un array v è una costante di tipo puntatore
che punta all’indirizzo della prima cella
v = &v[0]
v [i] è equivalente a *(v + i)
Negli array Se p e q puntano a due diversi elementi di
uno stesso array, la differenza p – q dà la
distanza nell’array tra gli elementi puntati
Una funzione è una sequenza di comandi che ha un nome, può essere invocata, può
ricevere dei parametri che ne influenzano l’esecuzione e produce