[c] Scanf

C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Nele
Postovi: 248
Pridružen/a: 07 lip 2009, 12:55
Spol: M

[c] Scanf

Post Postao/la Nele »

Da li ima razlike izmedju koristenja naredbi?

scanf("%d",&a);

scanf("%d",a);
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: [c] Scanf

Post Postao/la shrike »

jep, ovaj drugi neće raditt :D
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Medojedni jazavac
Postovi: 1536
Pridružen/a: 22 tra 2012, 08:55
Spol: M
OS: eOS Luna
Lokacija: ForHill Croatia
Kontakt:

Re: [c] Scanf

Post Postao/la Medojedni jazavac »

Shrike, prebrz si na odgovoru.

Ima razlike.

Scanf je posebna c funkcija koja prima parametre u obliku

Kod: Označi sve

scanf(const char *format, arg_1, arg_2, ..., arg_n)
Posebno je bitno da su svi argumenti ustvari pokazivaci.

Na primjeru ti budem pokazal.

Ako imas tip integer koji upisujes, stavit ces "&a", zato sto "a" po tipu nije pokazivac, vec integer, a funkcija zahtjeva da joj ti das pokazivac, odnosno adresu na kojoj se nalazi "a". Adresa se dobije pomocu operatora "&":

Kod: Označi sve

int a;
scanf("%d", &a);
Kada bi imal pokazivac onda pises ovako:
int* a;
scanf("%d", a);
Napomena: Da bi ovo kuzil, trebas kuzit pokazivace, te predavanje argumenta funkciji(odnosno razliku izmedju "call by value" i "call by reference")
stefan je napisao/la:tu mač gemišta
To understand recursion, you must first understand recursion.
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: [c] Scanf

Post Postao/la shrike »

istina, imaš pravo. optimiziram odgovore za raznu pitanja (tipa, tko pita to pitanje vjerojatno ne kuži int* a).
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
drone
Moderator
Postovi: 3293
Pridružen/a: 01 pro 2010, 23:50
OS: Arch/KDE, Debian/Armbian
Lokacija: Nova Gradiška

Re: [c] Scanf

Post Postao/la drone »

Meni ljepši int *a; od int* a; :)
1986-1990: Commodore64 / 1990-1994: Amiga 500 / 1995-1996: Amiga 1200 / 1997-2001: N/A@home /
2002-2004: Windows98, XP /
2004-2005: Knoppix, Mandrake / 2005: Mandriva, Ubuntu / 2005-2009: LFS / 2009-2010: Mint /
2010-... Arch
Avatar
max360se
Postovi: 6781
Pridružen/a: 06 lis 2011, 01:29
Spol: M
OS: Ovisi za sta
Lokacija: ~$

Re: [c] Scanf

Post Postao/la max360se »

int * a; je još ljepši :D
Lutherus je napisao/la:Ne postoje linuksi, postoji samo Linux i on je jedan i on je kernel.
Is Linux About Choice? || Pulsir - awesome blogging site :D
iv@n je napisao/la:Divide et impera i kako se kaže na latinskom da je ljudska glupost neuništiva.
Avatar
Medojedni jazavac
Postovi: 1536
Pridružen/a: 22 tra 2012, 08:55
Spol: M
OS: eOS Luna
Lokacija: ForHill Croatia
Kontakt:

Re: [c] Scanf

Post Postao/la Medojedni jazavac »

drone je napisao/la:Meni ljepši int *a; od int* a; :)
Ma ja volim pisat tak jer ista/jako slicna sintaksa radi jako razlicite stvari. Ne znam, da je po meni nekak bi se drukce napravili ili zadavanje tipa pokazivaca ili adresiranje vrijednosti.
stefan je napisao/la:tu mač gemišta
To understand recursion, you must first understand recursion.
Avatar
drone
Moderator
Postovi: 3293
Pridružen/a: 01 pro 2010, 23:50
OS: Arch/KDE, Debian/Armbian
Lokacija: Nova Gradiška

Re: [c] Scanf

Post Postao/la drone »

Da, slažem se. Izgubiš se s tim, pogotovo ako praviš strukture i čudesa :)
1986-1990: Commodore64 / 1990-1994: Amiga 500 / 1995-1996: Amiga 1200 / 1997-2001: N/A@home /
2002-2004: Windows98, XP /
2004-2005: Knoppix, Mandrake / 2005: Mandriva, Ubuntu / 2005-2009: LFS / 2009-2010: Mint /
2010-... Arch
Avatar
jasox
Postovi: 324
Pridružen/a: 30 kol 2011, 04:14

Re: [c] Scanf

Post Postao/la jasox »

ja koristim int *a;
zasto ?

int* a, * b; // ne valja brate ovo
int *a, *b; // ah nice
Nije sloboda radit ono sto hoces, nego da ne radit ono sto neces.
Avatar
drone
Moderator
Postovi: 3293
Pridružen/a: 01 pro 2010, 23:50
OS: Arch/KDE, Debian/Armbian
Lokacija: Nova Gradiška

Re: [c] Scanf

Post Postao/la drone »

max360se je napisao/la:int * a; je još ljepši :D
A nije, taj izgleda kao množenje.
Zapravo ne valja ni jedan. Loše je imati "uninitialized" pointere.
1986-1990: Commodore64 / 1990-1994: Amiga 500 / 1995-1996: Amiga 1200 / 1997-2001: N/A@home /
2002-2004: Windows98, XP /
2004-2005: Knoppix, Mandrake / 2005: Mandriva, Ubuntu / 2005-2009: LFS / 2009-2010: Mint /
2010-... Arch
Odgovori