Priorità degli operatori C ++ “& amp;” e “- >”
-
03-07-2019 - |
Domanda
Dato quanto segue:
&row->count
Verrà valutato & amp; (row- > count) o (& amp; row) - > count verrà valutato in C ++?
EDIT: ecco un ottimo link per la precedenza in C ++.
Soluzione
Altri suggerimenti
Per quanto riguarda le regole di precedenza, mi è sempre piaciuto quello presentato da Steve Oualline in "Practical C":
Ci sono quindici regole di precedenza in C (& amp; & amp; viene prima che || venga prima ? :). Il programmatore pratico riduce questi a due:
1) Moltiplicazione e divisione arrivano prima dell'aggiunta e della sottrazione.
2) Metti le parentesi attorno a tutto il resto.
Posso suggerire di risolvere tali domande utilizzando un programma di test? Ciò ha il vantaggio che saprai per certo che la risposta è corretta per la tua implementazione e che non sei esposto al rischio di domande a risposta errata.
La precendenza dell'operatore C è spiegata qui
Come da tabella, - > ha una priorità maggiore rispetto a & amp; operatore, quindi è & amp; (row- > count)
& amp; (row- > contare)
- > ha una priorità più alta di & amp; (indirizzo di). Quindi la tua espressione verrebbe valutata come & amp; (row- > count)