Functionのvarとconstの違いとは

解決


奈々子  2005-09-18 20:37:44  No: 17614

Function文の変数について正しく理解したいので
教えてください。
Function ABC(Const ArcName, FileName: String;
                     var ArcInfo: TArcInfo): Boolean;
これまでもConstやvarを意識なく(問題がおきないので)使って
いますが、誤った使い方をするとなにか不都合が起きるのでしょうか?
よろしくお願いします。


奈々氏  2005-09-18 21:50:03  No: 17615

var … 引数の値は変更できない。
const … 引数の値を関数内で変更可能。変更した結果を呼び出し元に返せる。

※ 変更する必要のない文字列の引数は、constにした方が望ましい。そうすれば、無駄な文字列のコピーがなくなる。


Mr.XRAY  URL  2005-09-18 21:51:50  No: 17616

関数に限らず,
constは定数
varは変数を意味します.(var  S: Stringというように使いますよね)

以下のコードを実行してみてくださいませ.
説明は省略します.自分でいろいろやってみて下さい.

procedure ABC1(const A: Integer);
begin
     A:=A+100; //これはエラー(定数値は変更不可)
end;

procedure ABC2(A: Integer );
begin
     A:=A+100;
end;

procedure ABC3(var A: Integer );
begin
     A:=A+100;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
     C : Integer;
begin
     C:=100;
     ABC1(100);
     ABC2(C);
     ShowMessage(IntToStr(C));
     ABC3(100); //これはエラー(変数は文字通り変化するので...)
     ABC3(C);
     ShowMessage(IntToStr(C));
end;


サルも筆のあやまり  2005-09-18 21:52:12  No: 17617

var と const の説明が逆だね。


奈々子  2005-09-23 20:19:04  No: 17618

奈々氏さん、Mr.XRAYさん、サルも筆のあやまりさん
初歩的な内容に回答ありがとうございます。
Constやvarには違いがあることが理解できました。
いままで作ったプログラムも見直して見ます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加