E' corretta questa scrittura [C]
Stavo riguardando gli appunti di programmazione e c'era un esercizio sull'implementazione dello stack come struttura dati.
Volevo solo sapere se è giusto scrivere questa cosa.
typedef struct{
double *s;
int cima;
int size;
}Stack;
Stack stack.
All'interno di una funzione c'è scritta questa cosa:
stack.s[--stack.cima]
Volevo sapere, è lecito scrivere --stack.cima???? se si cosa starebbe a significare???
Volevo solo sapere se è giusto scrivere questa cosa.
typedef struct{
double *s;
int cima;
int size;
}Stack;
Stack stack.
All'interno di una funzione c'è scritta questa cosa:
stack.s[--stack.cima]
Volevo sapere, è lecito scrivere --stack.cima???? se si cosa starebbe a significare???
Risposte
La scrittura --stack.cima indica di prendere l'elemento cima dalla struttura stuck, che è un intero, e di diminuirlo di uno [operatore di decremento a sinistra].
Siccome non sono sicuro della precedenza degli operatori, io avrei scritto --(stack.cima).
Siccome non sono sicuro della precedenza degli operatori, io avrei scritto --(stack.cima).
"Raptorista":
Siccome non sono sicuro della precedenza degli operatori, io avrei scritto --(stack.cima).
certamente (--stack).cima avrebbe tutt'altro significato, non vorrei dire ma si potrebbe cadere nell'aritmetica dei puntatori o un semplice errore dato dal compilatore per non compatibilità degli operatori (mi ha fatti venire un dubbio, meglio andar a vedere
