Perché il valore di int d 25 e non 26 dopo l'esecuzione del seguente frammento di codice?Risposta sconosciuta dopo l'esecuzione di n ++
int n = 20;
int d = n++ + 5;
Console.WriteLine(d);
Perché il valore di int d 25 e non 26 dopo l'esecuzione del seguente frammento di codice?Risposta sconosciuta dopo l'esecuzione di n ++
int n = 20;
int d = n++ + 5;
Console.WriteLine(d);
n++
è l'operatore "post-incremento", che incrementa solo il valore dopo il suo valore iniziale è stato usato nell'espressione circostante.
Il codice è equivalente a:
int d = n + 5;
n = n + 1;
per incrementare il valore prima il suo valore si abitua, utilizzare ++n
, l'operatore di pre-incremento.
+1 per scomporre la sintassi chirurgarabile equivalente. –
perché è necessario utilizzare ++n
per utilizzare il valore incrementato in quell'espressione.
See, nella struttura di espressione non è incrementare n
e quindi utilizzando tale valore in aggiunta a causa n++
restituisce il valore di n
ma lo incrementa per la prossima espressione usata.
Tuttavia, ++n
restituirà effettivamente il valore incrementato di n
per questa espressione.
Pertanto, n++ + 5
cede 25
mentre ++n + 5
rendimenti 26
.
n++
significa eseguire l'adizione dopo l'operazione, quindi prima d sarà uguale a n+5
e quindi n
verrà generato.
Poiché n++
verranno dapprima assegnare il valore e dopo il completamento di iterazione viene incrementato questo è il motivo relativo dare 25
Quindi,
int d= n++ + 5;
viene interpretato come
int d = n + 5;
perché downvote ?????? – Neel
A causa di che si sta utilizzando Postfix esprimere
int d = n++ + 5;
dove compilatore prima assegnare valore a D, ma in seguito
int d = ++n + 5;
voi hanno ottenuto d's valore 26
++
: incremento postale operatore.
Il risultato dell'operatore post fi x ++ è il valore dell'operando.Dopo il risultato viene ottenuto , il valore dell'operando è incrementato
Quindi,
int d= n++ + 5;
viene interpretato come
int d = n + 5;
dopo l'esecuzione del interpretaion sopra. n
viene incrementato di 1.
possibile duplicato di [Qual è la differenza tra ++ i e i ++] (http://stackoverflow.com/questions/24853/what-is-the-difference-between-i-and -i) –
Vedi anche: https://communities.coverity.com/blogs/development-testing-blog/2013/09/24/cc-and-c –