Function文の変数について正しく理解したいので
教えてください。
Function ABC(Const ArcName, FileName: String;
var ArcInfo: TArcInfo): Boolean;
これまでもConstやvarを意識なく(問題がおきないので)使って
いますが、誤った使い方をするとなにか不都合が起きるのでしょうか?
よろしくお願いします。
var … 引数の値は変更できない。
const … 引数の値を関数内で変更可能。変更した結果を呼び出し元に返せる。
※ 変更する必要のない文字列の引数は、constにした方が望ましい。そうすれば、無駄な文字列のコピーがなくなる。
関数に限らず,
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;
var と const の説明が逆だね。
奈々氏さん、Mr.XRAYさん、サルも筆のあやまりさん
初歩的な内容に回答ありがとうございます。
Constやvarには違いがあることが理解できました。
いままで作ったプログラムも見直して見ます。
ツイート | ![]() |