# Revisione dei Token C

In programmazione C, i token sono i più piccoli elementi individuali che compongono un programma. Ecco una revisione completa dei token C:

## 1. Parole chiave

Queste sono parole riservate con un significato speciale per il compilatore:

```c

auto break case char const continue

default do double else enum extern

float for goto if int long

register return short signed sizeof static

struct switch typedef union unsigned void

volatile while _Bool _Complex _Imaginary

```

## 2. Identificatori

Nomi assegnati a variabili, funzioni, array, ecc.:

- Regole:

- Deve iniziare con una lettera o un trattino basso

- Può contenere lettere, cifre, trattini bassi

- Sensibile al maiuscolo/minuscolo

- Non può essere una parola chiave

## 3. Costanti/Literal

Valori fissi che non cambiano:

- Intero: `123`, `-456`, `0x1A` (esadecimale), `0123` (ottale)

- Punto flottante: `3.14`, `-0.5e-10`

- Carattere: `'a'`, `'\n'`, `'\x41'`

- Stringa: `"Ciao"`, `"Linea 1\nLinea 2"`

## 4. Operatori

Simboli che eseguono operazioni:

- Aritmetici: `+`, `-`, `*`, `/`, `%`, `++`, `--`

- Relazionali: `==`, `!=`, `>`, `<`, `>=`, `<=`

- Logici: `&&`, `||`, `!`

- Bitwise: `&`, `|`, `^`, `~`, `<<`, `>>`

- Assegnazione: `=`, `+=`, `-=`, ecc.

- Varie: `sizeof()`, `&` (indirizzo), `*` (puntatore), `?:` (ternario)

## 5. Simboli Speciali

- Parentesi: `[]` (array), `{}` (blocchi), `()` (funzioni)

- Punteggiatura: `,`, `;`, `:`, `#` (preprocessore)

## 6. Commenti

Non sono tecnicamente token (rimossi durante la preelaborazione), ma importanti:

```c

// Commento su una sola linea

/* Commento multi-linea */

```

## Esempi di Token

```c

#include <stdio.h> // '#' e '<stdio.h>' sono token

int main() { // 'int', 'main', '(', ')', '{' sono token

int x = 10; // 'int', 'x', '=', '10', ';' sono token

printf("%d", x);// 'printf', '(', '"%d"', ',', 'x', ')', ';'

return 0; // 'return', '0', ';'

} // '}' è un token

```

Comprendere questi token è fondamentale per scrivere e leggere il codice C in modo efficace.