|
| What??? Swapping two variables without pointers or a third one? | 
|
|---|
| Swapping two values without using pointers or a third variable. | Product: Delphi all versions | Category: Algorithm | Skill Level:
 | Scoring:  | Last Update: 07/30/2001 | Search Keys: delphi delphi3000 article borland vcl code-snippet swap temporary integer curiosity | Times Scored: 10 | Visits: 5180 | Uploader: Rafael Cotta Company: | Reference: N/A | | | Question/Problem/Abstract:
How to swap two integers without a temporary variable or pointers? | Answer:
Yes, itīs possible to swap the values of two variables without using a third one or swapping pointers.
How??? The answer is: using xor!!!
Place a label and a button on a form, and put this on Buttonīs click event.
//------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
var1 : integer;
var2 : integer;
begin
var1 := 19;
var2 := 564;
var1 := var1 xor var2;
var2 := var1 xor var2;
var1 := var1 xor var2;
// Theyīre swapped!!!
Label1.Caption := 'Var1 = ' + IntToStr(var1) + '; Var2 = ' + IntToStr(var2);
end;
//------------------------------
Try this!
|
|