Post Reply  Post Thread 
Reference
Author Message
Lena
Novi korisnik
*


Posts: 1
Group: Registered
Joined: Mar 2008
Status: Offline
Reputation: 0
Post: #1
Reference

Moze neko da mi objasni reference i swap u c#. Ja sam pocetnik i ove dve stvari mi nisu bas najjasnije. Npr: Zasto se ovde ispisuju 323 ,121 i 123.

class Program
{
static void Main(string[] args)
{
int x = 3;
int y = 2;
int z = 1;
Sort(x,y,ref z);
Console.WriteLine("x = {0}, y = {1}, z = {2}",x,y,z);
Console.ReadKey();
x = 3;
y = 2;
z = 1;
Sort(ref x, ref y, z);
Console.WriteLine("x ={0}, y = {1}, z = {2}",x,y,z);
Console.ReadKey();
x = 3;
y = 2;
z = 1;
Sort(ref x, ref y, ref z);
Console.WriteLine("x = {0}, y = {1}, z = {2}",x,y,z);
Console.ReadKey();
}
static void Sort(ref int a, ref int b, ref int c)
{
if (a > b)
Swap(ref a, ref b);
if (a > c)
Swap(ref a, ref c);
if (b > c)
Swap(ref b, ref c);


}
static void Sort(ref int a, ref int b, int c)
{
if (a > b)
Swap(ref a, ref b);
if (a > c)
Swap(ref a, ref c);
if (b > c)
Swap(ref b, ref c);
}
static void Sort(int a, int b, ref int c)
{
if (a > b)
Swap(ref a, ref b);
if (a > c)
Swap(ref a, ref c);
if (b > c)
Swap(ref b, ref c);
}
static void Swap(ref int a, ref int b)
{
int tmp = a;
a = b;
b = tmp;


Console.ReadKey();
}
}
}

15-03-2008 09:45 PM
Find all posts by this user Quote this message in a reply
Puž
Redoviti posjetitelj
**


Posts: 131
Group: Registered
Joined: Mar 2007
Status: Offline
Reputation: 24
Post: #2
RE: Reference

Swap nemre bit jednostavniji..... Jednostavno zamjeni vrijednosti dve varijable (neznam kaj ti tu nije jasno).

A reference rade tak da kad proslijedis neku vrijednost funkciji sa modifikatorom ref, pošalješ referencu, tako da kada mijenjaš vrijednost jedne varijable, mijenjaju se oba dve varijable jer pokazuju na istu memorijsku lokaciju (referencu).

Primjer ti se tak odvija, jer kod pozivanja prve funkcije si proslijedio samo jednu referencu, tak da se u main-u mijenja (sortira) samo "x" (dobiš 323). U drgoj funkciji si proslijedio dve reference, tak da se ne mijenja "z" varijabla, a treća funkcija radi dobro zato kaj ima 3 reference.

16-03-2008 07:36 PM
Find all posts by this user Quote this message in a reply
Post Reply  Post Thread 

View a Printable Version
Send this Thread to a Friend
Subscribe to this Thread | Add Thread to Favorites

Forum Jump: