Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.315 pregleda

Najnovija ↓

Pomoć oko operatora povecanja u c-u 17.07.2008. u 00:43 · pre 222 meseca #1
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;

}
Re: Pomoć oko operatora povecanja u c-u 17.07.2008. u 01:05 · pre 222 meseca #2
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...
Re: Pomoć oko operatora povecanja u c-u 17.07.2008. u 10:46 · pre 222 meseca #3
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme