[Powered by Google Translate] Precendenza è come rispondere alla domanda: quale operazione dobbiamo fare prima? Se la risoluzione di equazioni matematiche o linee di analisi di codice informatico, ci sono regole rigide di precedenza alla quale ci atteniamo in modo che tutti i computer e le persone possono ottenere lo stesso risultato. Prima di tutto, la regola più importante da ricordare, soprattutto in fase di test bug, è che si lavora sempre dalle parentesi più interne verso l'esterno. Utilizzo delle parentesi in più può essere una tattica di debug utile, ma non è buona pratica lettiera il codice con parentesi non necessari. Prendetevi il tempo per imparare di base dell'operatore regole di precedenza. La seconda regola generale è che quando gli operatori hanno priorty uguale, semplicemente risolvere da sinistra a destra. Quando si tratta di semplice matematica si parte con le parentesi, poi fare la moltiplicazione e la divisione, e infine fare l'addizione e la sottrazione. Moltiplicazione e divisione hanno la stessa priorità, perché sono essenzialmente eseguendo la stessa operazione. Dopo ogni divisione è semplicemente moltiplicando per l'inverso del valore. Analogamente, sottrazione viene semplicemente aggiungendo un valore negativo. Facciamo un esempio. Seguendo l'ordine di precedenza, inizieremo con le parentesi. Nove meno 1. Questo ci darà 8. Poi si può passare alla divisione e moltiplicazione. Ci risolvere da sinistra a destra. Quindi 10 diviso 2 è 5. Abbiamo 5 volte 8 qui, e che ci darà 40. Quindi si passa al prossimo ordine di precedenza. Quindi siamo lasciati con 3 più 40 meno 1. Anche in questo caso solo la risoluzione da sinistra a destra, perché non c'è la stessa priorità tra l'aggiunta e la sottrazione. Possiamo dire 3 più 40 è 43, meno 1 è 42. Questa è la nostra risposta. Ci sono 2 tipi di operatori di decremento e incremento; La forma prefisso, suffisso e la forma. La forma suffisso, i + +, è comunemente usato nei cicli for, il che significa che il valore corrente viene utilizzato nell'espressione, e poi viene incrementato. Quindi, il valore sarà solo diverso la prossima volta che viene utilizzata la variabile. D'altra parte, l'incremento o decremento prefisso significa che il valore corrente è incrementato o decrementato prima, e quindi viene utilizzato nell'espressione. Facciamo un esempio con il numero intero x. Ci impostarlo uguale a 5. Se usiamo l'operatore suffisso su di esso e dire x + +, x su questa linea è ancora 5. Se dovessimo stamparla si otterrebbe il valore 5. Ma andando avanti fatto x1 è uguale a 6. Quindi, proprio qui su questo x linea è uguale a 6, e se lo stampato si otterrebbe il valore 6. Ora, se abbiamo usato l'operatore prefisso, + + x, x viene incrementato prima, e poi il valore viene utilizzato. Quindi è pari a 7 su questa linea. L'aggiornamento del corso di 6 a 7, e se dovessimo stamparla si otterrebbe il valore 7. La sfumatura ultimo precendenza che vedremo si occupa di notazione dei puntatori. L'operatore dereferenziare, stelle, ha la priorità su operatori matematici di base, ma non oltre il incement suffisso e gli operatori decremento. Questo ci porta al nostro esempio finale. Prendiamo il numero intero x e impostarlo uguale a 7. Faremo anche fare un y puntatore e impostarlo uguale all'indirizzo di x. Così che quando y dereference dovremmo ottenere il valore 7. Ora, in questa riga di codice, abbiamo una situazione un po 'ambigua. Stiamo dereferencing y prima, e poi incrementare il valore 7? Oppure stiamo incrementando il puntatore e poi deferenziandolo? Infatti, poiché l'operatore di incremento suffisso ha la precedenza su l'operatore dereference, stiamo cercando di incrementare il puntatore y, che spostare il puntatore in base alle dimensioni di byte int. Essenzialmente darci un indirizzo in qualche punto completamente diverso in memoria, e poi stiamo dereferenziazione. Quindi questa è la linea molto senso. Se in realtà voleva incrementare il valore di 7, dovremmo mettere l'operatore dereference con y tra parentesi. Poi abbiamo potuto incrementare. Così, mentre noi non sarebbe incrementare il valore x con la penultima riga di codice, nell'ultima riga di codice avremmo dereference y infatti per ottenere il valore x e incrementare quello. Ci sarebbe rimasto con il valore di x è uguale a 8. Ecco un breve riepilogo delle regole precendenza di cui abbiamo parlato. Si comincerà con le parentesi più interne e lavorare verso l'esterno. Poi si passa agli operatori suffissi come i + + o i -. Poi dereference e l'indirizzo degli operatori come stella x o commerciale x, e gli operatori in forma prefissa come + + i o - i. Infine, facciamo le operazioni matematiche semplici come moltiplicazione, divisione, modulo. Poi addizione, sottrazione. Questo è precendenza. Sono Jordan Jozwiak, e questo è CS50. Facciamo una dereference e utilizzare l'indirizzo e - come si fa una frase che? Ho finito. Va bene.