如何用DELPHI编写不用第三变量,将两个变量的值交换啊

那位高人能解决一下哦,谢谢....... 那位高人能解决一下哦,谢谢.... 展开
 我来答
天下有敌的店铺
2006-11-26 · TA获得超过504个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:286万
展开全部
可以使用异或来一个巧妙的解决,代码如下(仅仅贴单元文件)
(Delphi 7 + Windows XP sp2)

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure Swap(var a:integer;var b: integer);
begin
  a := a xor b;
  b := a xor b;
  a := a xor b;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  n1,n2:integer;
begin
  n1 := 100;
  n2 := 200;
  ShowMessage('n1='+IntToStr(n1) + ' ' + 'n2=' + IntToStr(n2));
  Swap(n1,n2);
  ShowMessage('n1='+IntToStr(n1) + ' ' + 'n2=' + IntToStr(n2));
end;
 
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yueyun889
2006-11-22 · TA获得超过725个赞
知道小有建树答主
回答量:539
采纳率:0%
帮助的人:767万
展开全部
举个例子:
var a, b : string; list,list1 : tstrings;
begin
a := 'eee';
b := 'aaa';
list := tstringlist.Create;
list1 := tstringlist.Create;
list.Add(a);
list1.Add(b);
a := list1.Text;
b := list.Text;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cyrix123
2006-11-21 · 超过55用户采纳过TA的回答
知道答主
回答量:162
采纳率:0%
帮助的人:0
展开全部
a := a+b;
b := a-b;
a := a-b;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式