Stranica: 1/2.

[c] Scanf

Postano: 08 ožu 2013, 20:45
Postao/la Nele
Da li ima razlike izmedju koristenja naredbi?

scanf("%d",&a);

scanf("%d",a);

Re: [c] Scanf

Postano: 08 ožu 2013, 20:51
Postao/la shrike
jep, ovaj drugi neće raditt :D

Re: [c] Scanf

Postano: 08 ožu 2013, 21:50
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")

Re: [c] Scanf

Postano: 08 ožu 2013, 22:00
Postao/la shrike
istina, imaš pravo. optimiziram odgovore za raznu pitanja (tipa, tko pita to pitanje vjerojatno ne kuži int* a).

Re: [c] Scanf

Postano: 08 ožu 2013, 22:35
Postao/la drone
Meni ljepši int *a; od int* a; :)

Re: [c] Scanf

Postano: 08 ožu 2013, 22:42
Postao/la max360se
int * a; je još ljepši :D

Re: [c] Scanf

Postano: 08 ožu 2013, 22:44
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.

Re: [c] Scanf

Postano: 08 ožu 2013, 22:52
Postao/la drone
Da, slažem se. Izgubiš se s tim, pogotovo ako praviš strukture i čudesa :)

Re: [c] Scanf

Postano: 09 ožu 2013, 00:33
Postao/la jasox
ja koristim int *a;
zasto ?

int* a, * b; // ne valja brate ovo
int *a, *b; // ah nice

Re: [c] Scanf

Postano: 09 ožu 2013, 00:40
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.