[ aleksandar1991 @ 16.07.2008. 23:43 ] @
Pozdrav svima zavrsio sam 2 razred Elektro tehničke škole-Tehničar računarstva,posot mi se programiranje sviđa i želio bih da se u budućnosti njime i bavim kupio sam sebi dobru knjigu za programski jezik c i sve mi je dobro islo dok nisam dosao do operatora povecavanja i smanjenja.
Znam da to nije nista toliko tesko ali zbunio me je ovaj primjer ispod.

Mi varijablama n1 i n2 podijelimo vrijednost 1 onda dole napisemo n2=n1++
sto znaci ako je znak "=" operator dodijele da varijabli n2 koja ima vrijednost 1 dodijelimo vrijednost n1++ sto ustvari znaci 2,onda slijedi da varijabla n2 ima vrijednost 3.U knjizi pise da varijabla n1 ima vrijednost 2 a n2 1 pa mi to nije jasno.

Možda ja nisam u pravu i pricam gluposti ali molim vas da mi objasnite ovaj primjer jer ne bih volio ovo da preskočim jer znam da je važno.


#include<stdio.h>

int main(void) {

int n1,n2;

n1=1;

n2=1;

printf("At first,n1 is %d, n2 is %d.\n",n1,n2);

n2=n1++;

printf("After n2=n1++,n1 is %d, n2 is %d.\n",n1,n2);

n2=n1-;

printf("After n2=n1-,n1 is %d,n2 is %d.\n",n1,n2);

getchar();

return 0;

}
[ POW R TOC H @ 17.07.2008. 00:05 ] @
Pogresio si, a evo i zasto :
Code:

int n1 = 1;
int n2 = 1;
//sada su i n1 i n2 = 1

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

Sta je ovde cudno :) ?
PS : Cudi me da te kompajler nije obavestio, izraz (n2-;) nije validan. '-' je binarni operator, i zahteva dva operanda, a tvoj izraz ima samo jedan...
[ peromalosutra @ 17.07.2008. 09:46 ] @
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.
[ aleksandar1991 @ 18.07.2008. 12:23 ] @
Hvala vam na pomoći.

Razumio sam princip rada predinkrementnog i postinkrementnog operatora.