Code:
n2 = n1++;
//hajde da ovo razlozimo:
//Posto je n1=1 , vrednost izraza (n1++) ce biti 2.
//Kada promenljivoj n2 dodelis 2 (n2 = (n1++)) dobijes 2
Nije tačno, nakon izvršavanja će biti situacija: n1=2, n2=1. Ovdje se radi o postinkrement operatoru, znači prvo se vrijednost n1 dodjeli varijabli n2, pa se tek onda n1 uveća za 1.
Da je bila situacija:
Code:
n2 = ++n1;
Onda bi n1=n2=2. To je razlika izmedju predinkrement i postinkrement operatora.
ivan@ivan-desktop:~$ ./encrypt.run
*** stack smashing detected ***: ./encrypt.run terminated
Aborted (core dumped)