Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...

[es] :: C/C++ programiranje :: C/C++ za početnike :: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...

[ Pregleda: 6941 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

RooTeR
Rajko Nenadov
nema ga
Detelinara, NS

Član broj: 2386
Poruke: 385
*.ADSL.neobee.net.



Profil

icon Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...16.03.2006. u 22:20 - pre 219 meseci
ako imam sledeci deo koda :

void funk(vectr<int> t){ ... }

void main(){
vector<int> tmp;
...
funk(tmp);
...
}


Da li ce se ceo vektor prenositi kao argument (znachi po vrednosti), ili samo referenca na njega?
mmmmmm.. aahhhhhh..
e, nije sex nego serem!
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...16.03.2006. u 22:35 - pre 219 meseci
Mislim da ce ovo napraviti kopiju celog vektora (ukljucujuci sve vrednosti u njemu) u f-ji funk.

Ako hoces prenos po referenci:
void funk(vector<int>&t){ ... }

A ako zelis da se osiguras da elementi nece biti menjani:
void funk(const vector<int>&t){ ... }
Ipak se ++uje.
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.adsl.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...02.04.2006. u 22:56 - pre 218 meseci
Ja sam mislio da se u C-u argumenti prenose samo po vrednosti,i nikako vise ???
Moze neki mali kratki gotov primer ako je drugacije,ako se ne prenose samo po vrednosti !!!
Hvala puno,poz!
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...03.04.2006. u 09:39 - pre 218 meseci
Evo pogledaj ovaj primer
Code:

// Dev-Cpp 4.9.9.2 with Mingw/GCC 3.4.2
#include <stdio.h>
#include <string.h>

/* swap(int *a, int *b) : prosledjene adrese argumenata 
   doci ce do promene vrednosti (i,j) van funkcije */
void swap(int *a, int *b){
    int c = *a;
    *a = *b;
    *b = c;
};

/* swap(int a, int b) :  prave se lokalne kopije argumeta,
   pa vrednosti (i,j) van funkcije ostaju nepromenjeni */
void nije_swap(int a, int b){
    int c = a;
    a = b;
    b = c;
};

int main (){
    int i = 2, j = 5;
    printf("Pre poziva: i = %d,  j = %d\n", i,j);
    swap(&i,&j);
    printf("\nPosle poziva swap(): i = %d,  j = %d\n", i,j);
    nije_swap(i,j);
    printf("\nPosle poziva nije_swap(): i = %d,  j = %d\n", i,j);
    system("pause");
    return 0;
}

idb
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.smin.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...03.04.2006. u 11:29 - pre 218 meseci
Ma to znam i ja,to nije promena vrednosti,to je samo maska!
Ipak se u c argumenti prosledjuju samo po vrednosti!
Hvala sve jedno na odgovoru!Pozzz
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...04.04.2006. u 13:59 - pre 218 meseci
Ne, nije to nikakava maska, nego u funkciju prosljedjujes gotovu vrijednost ili pointer.

Ako imas int a = 5 i pozoves funkciju kojoj je ulazni argument varijabla a, sve operacije koje ti radis sa tom varijablom a unutar funkcije su vidljive samo unutar scopea te funkcije, zato sta pri pozivu se kopira vrijednost varijable iz maina, pa se radi samo sa tom vrijednosti. Nakon izlaza iz funkcije, varijabla a je netaknuta u mainu, makar ti radio cuda s njom.

Ako prosljedis pointer u funkciju, baratas sa memorijskom adresom na koju taj pointer pokazuje. Tako ako prosljedis pointer koji gleda na memorijsku adresu varijable a iz maina, ti radis sa memorijskim mjestom na kojem stoji varijabla a, tako da svaka promjena koju napravis u funkciji je vidljiva i u drugim scopeovima.

Simple as that...

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...27.04.2006. u 00:38 - pre 218 meseci
A meni sad nije ni jasno zasto je ovo smesteno pod C za pocetnike.
Offtopic je mogao 'ladno da ide kao zasebna tema.
Ipak se ++uje.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
193.198.168.*

Sajt: www.dump.hr


Profil

icon Re: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...27.04.2006. u 17:36 - pre 218 meseci
doci ce moderatori pa ce obrisati ovaj moj post, taj tvoj i prebaciti temu u "C++ za pocetnike"
 
Odgovor na temu

n1tr0
Freelance
Cortanovci / NS

Član broj: 55279
Poruke: 465
80.93.231.*

Sajt: grubicv.iz.rs


+2 Profil

icon Re: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...29.04.2006. u 03:52 - pre 218 meseci
Citat:
z@re:
Ne, nije to nikakava maska, nego u funkciju prosljedjujes gotovu vrijednost ili pointer.


1) Kada se f-ja poziva ne prosledjuje se pointer vec adresa promenljive.
2) Ne prosledjuje se f-ji, vec na stek, a f-ja to preuzme sa steka i smesti u odgovarajucu promenljivu(u ovom slucaju pokazivac).

Verovatno si mislio na ovo: u f-ju se parametri prenose po vrednosti(od kojih se prave kopije na steku i kada ih menjamo u f-ji to ne utice na one originalne promenljive) ili po referenci(na stek se prosledjuju adrese promenljivih i zbog toga kada ih preko pokazivaca obradjujemo ustvari radimo sa originalima, i svaka promena parametara unutar f-je izaziva promenu originala).

[Ovu poruku je menjao n1tr0 dana 29.04.2006. u 04:57 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Prosledjivanje po vrednosti, i josh neka pocetnicka pitanja ...

[ Pregleda: 6941 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.