Espressioni

Come sono fatte le espressioni per rappresentare valori di un qualche tipo, sia esso T QUESTIONI
Controllo dei tipi nel formare espressioni
Per ogni operazione di un tipo di dato è definito il numero ed il tipo degli argomenti, pertanto non è possibile formare espressioni applicando un'operazione ad un numero diverso di argomenti o ad argomenti di tipo diverso, sin('@') e sin(3.2, 4.4) sono errate.
Casi particolari: conversioni implicite di tipo: se un'operazione vuole un reale e invece arriva un intero viene automaticamente convertito, e questo non dovrebbe creare problemi.
Il C fa molto di più, per esempio, se un'operazione vuole un intero e arriva un carattere il carattere viene convertito; usare questa possibilità solo in casi particolari, poichè può dare origine a problemi.
Sintassi funzionale e infissa delle operazioni
Notare il differente modo di formare le espressioni usando + e sin, il primo usa una sintassi infissa, mentre il secondo una funzionale.
La sintassi infissa può creare ambiguità, es. cosa indica 3 + 4 * 5 ?
Per superare questo problema, si può
usare delle parentesi (come al solito nella matematica)
(3 + 4) * 5 o 3 + (4 * 5)
oppure definire le precedenze tra le operazioni (ogni linguaggio elenca le sue) es, - unario precedenza su + e - binario
quindi 3 - 5 + 4 è 3 +(- 5) + 4 e non 3 - (5 + 4)

ESERCIZI
  1. Assumendo che alcune variabili siano state dichiarate come segue:
    int X1, TT, FF;
    char CC, CQ, C33 ;
    float X, Y, Z;
    dire quali delle seguenti assegnazioni C sono corrette
    Y = 0E0;
    X = 0e-1;
    TT = 1;
    FF = 0;
    X1 = TT;
    TT = (X == Y) == X1;
    CC = '|';
    C33 = 2* (CC - 1);
    X = X1;
    X1 = X;
    Z = (X/Y)*(Y/X);
  2. Usando le variabili dichiarate sopra, scrivere 3 assegnazioni corrette e 3 errate.