Ho visto questo esempio in un libro di testo e sono un po 'confuso su come interpretare le regole di precedenza degli operatori. Data questa struttura:
typedef struct {
char *data;
size_t start, end;
} str_wends;
Lascia che B
sia dichiarato come puntatore a questa struttura, ovvero.
str_wends *B = malloc(sizeof(str_wends));
e si assume B->start != 0
,
allora questo dovrebbe essere un costrutto legale:
&B->data[B->start]
che restituirà un riferimento all'offset di stringa di B->start
. La domanda è come interpretare le regole di precedenza. Poiché sappiamo che ->
e []
hanno la stessa precedenza e si legano da sinistra a destra, perché B->Start
è stato valutato prima di B->data[]
.