Formato dati
Data Type |
Printf |
Scanf |
int |
%d |
%d |
unsigned int |
%u |
%u |
long int |
%ld |
%ld |
unsigned long int |
%lu |
%lu |
long long int |
%lld |
%lld |
unsigned long long int |
%llu |
%llu |
double |
%f |
%lf |
float |
%f |
%f |
hex integer |
%x |
%x |
decimal exponent |
%e |
%e |
char |
%c |
%c |
unsigned char |
%c |
%c |
string |
%s |
%s |
%pointer |
%p |
%p |
Sequenze di Escape
Escape |
Azione |
\n |
Va a capo. |
\t |
Va alla tabulazione successiva. |
\a |
Produce suono o allarme visibile senza cambiare posizione del cursore. |
\\ |
Scrive un backlash. |
\" |
Scrive le doppie virgolette. |
\? |
Scrive il punto interrogativo. |
\' |
Scrive un'apostrofo. |
Operatori Logici
Operatore |
Simbolo |
AND |
&& |
OR |
|| |
NOT |
! |
Definire Array e Matrici
Definisce un array di interi di grandezza 10.
|
Definisce un array di interi di grandezza 10 e inizializza tutte le celle a 0.
|
Definisce un array di char di grandezza 10: può contenere al massimo 9 caratteri.
|
Definisce un array di char di grandezza 5: 4 lettere e il terminatore di stringa '\0'.
|
char i[] = {'c', 'i', 'a', 'o', '\0'};
Equivalente al precedente.
|
Definisce una matrice 2*3.
|
int i[2][3] = {{1, 2, 3}, {4, 5, 6},};
Definisce una matrice 2*3 e inizializza ogni riga con valori da 1 a 6.
|
Definisce un array delle dimensioni conservate in variabile. Caso di VLA.
|
Definisce un array di dimensioni pari alla costante simbolica SIZE.
|
Un vettore preceduto da const non può essere modificato nel suo contenuto.
Definire una Struttura
struct dati
{
int sensore;
char stringa[10];
float media;
};
|
Una struttura include variabili e array anche di tipi diversi.
Se la struttura è usata da più funzioni, porre la struttura fuori dal corpo della main.
|
|
Tipi di Variabili
Type |
Scope |
Extern |
Prefisso che indica una variabile dichiarata in un modulo (es .h) esterno al modulo chela usa. |
Global |
Dichiarata esternamente alle funzioni e visibile in ogni funzione |
Static |
Come locale ma non è distrutta quando la funzione cede il controllo al chiamante |
Local |
Ha una visibilità limitata ad una funzione o una iterazione (for). |
SI |
#include "myfile.h" extern int var; int main(void) { var = 10; return 0; }
|
NO |
extern int var; int main(void) { var = 10; return 0; }
|
Con extern dichiarare dove si trova la variabile.
EX: myfile.h
Incremento e Decremento
Formato |
Azione |
a++ |
Rende disponibile la variabile, poi la incrementa |
++a |
Incrementa la variabile, poi la rende disponibile |
a-- |
Rende disponibile la variabile, poi la decrementa |
--a |
Decrementa la variabile, poi la rende disponibile |
a += |
Somma ad a la parte destra, poi assegna ad a |
a -= |
Sottrae ad a la parte destra, poi assegna ad a |
a *= |
Moltiplica a per a la parte destra, poi assegna ad a |
a /= |
Divide a per a la parte destra, poi assegna ad a |
a %= |
Trova il resto tra a e la parte destra, poi assegna ad a |
Manipolazione su bit
Simbolo |
Azione |
x>>y |
x scorre a destra di y bit |
x<<y |
x scorre a sinistra di y bit |
x&y |
AND bit a bit tra x e y |
x|y |
OR bit a bit tra x e y |
x^y |
XOR bit a bit tra x e y |
~x |
Complemento dei bit di x |
Operatore Ternario
(condizione) ? Espressione 1 : Espressione 2 ;
|
Se la condizione è vera verrà eseguita Espressione 1;
Se la condizione è falsa verrà eseguita Espressione 2.
Generare Numeri Random
Genera numeri casuali i = rand();
|
Genera numeri casuali in un intervallo preciso i = minimo + rand() % (massimo - minimo + 1);
|
Scegliere un seme sempre diverso srand(time(NULL));
|
Per utilizzare rand() e srand() è necessario includere <stdlib.h>.
Per utilizzare time(NULL) è necessario includere <time.h>.
Modalità Apertura File
r |
Lettura |
Se il file non esiste, fopen() restituisce NULL. |
r+ |
Lettura e Scrittura |
Se il file non esiste, fopen() restituisce NULL. |
w |
Scrittura |
Se il file non esiste viene creato, se esiste viene sovrascritto. |
w+ |
Lettura e Scrittura |
Se il file non esiste viene creato, se esiste viene sovrascritto. |
a |
Append |
Se il file non esiste viene creato. |
a+ |
Lettura e Append |
Se il file non esiste viene creato. |
rb |
Lettura binaria |
Se il file non esiste, fopen() restituisce NULL. |
rb+ |
Lettura e Scrittura binaria |
Se il file non esiste, fopen() restituisce NULL. |
wb |
Scrittura binaria |
Se il file non esiste viene creato, se esiste viene sovrascritto. |
wb+ |
Lettura e Scrittura binaria |
Se il file non esiste viene creato, se esiste viene sovrascritto. |
ab |
Append binario |
Se il file non esiste viene creato. |
ab+ |
Lettura e Append |
Se il file non esiste viene creato. |
Operazioni sui Puntatori
Operazione |
Azione |
pointer + i |
Sposta il puntatore di i posizioni in avanti. |
pointer - i |
Sposta il puntatore di i posizioni indietro. |
pointer1 - pointer2 |
Quanti dati del tipo puntato possono inserire tra la posizione di pointer1 e pointer2. |
pointer++ |
Sposta di una posizione il puntatore. |
Spostare significa aumentare o diminuire di tot. byte (in base alla dimensione del tipo puntato) l'indirizzo del puntatore.
'i' è un valore intero.
Precedenze
Operatore |
Descrizione |
Associatività |
() [] ++ -- |
Parentesi/Chiamata a funzione Parentesi/Indice Array Postincremento/Postdecremento |
Sinistra - Destra |
++ -- (type) * & sizeof |
Preincrementi/Predecrementi Cast Indirezione puntatore/Deferenziazione Indirizzo puntatore Operatore sizeof |
Destra - Sinistra |
* / % |
Moltiplicazione, Divisione e Modulo |
Sinistra - Destra |
+ - |
Somma e sottrazione |
Sinistra - Destra |
<< >> |
Shift bit a bit |
Sinistra - Destra |
< <= > >= |
Confronto relazioni |
Sinistra - Destra |
== != |
Confronto uguaglianza |
Sinistra - Destra |
&& |
AND Logico |
Sinistra - Destra |
|| |
OR Logico |
Sinistra - Destra |
? : |
Operatore ternario |
Destra - Sinistra |
= += -= *= /= %= |
Assegnazione Operazione e assegnazione |
Destra - Sinistra |
, |
Operatore virgola |
Sinistra - Destra |
Pulire Schermo
#include <windows.h> || #include <process.h> || #include <stdlib.h> Inserire la libreria necessaria al funzionamento.
|
system("pause"); Chiede all'utente di premere un tasto per continuare.
|
system("cls"); //windows ||
system("clear"); //linux Pulisce lo schermo dal testo precedente.
|
|