int A(int *x) dichiara una funzione di nome A che accetta un parametro x di tipo puntatore a intero e restituisce un intero.
questa funzione diminuisce il valore del valore *x di uno.
Riguardo alla funzione B, A(&x) significa che chiama la funzione A passandogli come parametro l'indirizzo della variabile x
Il codice return 1+A(&x); è del tutto inutile perchè ritorna semplicemente x.
Quindi la B, dato un parametro, lo passa ad A che lo decrementa di 1.
Poi richiama A di nuovo che lo decrementa di un altro 1.
Infine ritorna il valore calcolato (cioè x-2) più 1, quindi (x-1)
![]()

Rispondi quotando