- Pascal 教程
- Pascal - 主頁
- Pascal - 概述
- Pascal - 環境設定
- Pascal - 程式結構
- Pascal - 基本語法
- Pascal - 資料型別
- Pascal - 變數型別
- Pascal - 常量
- Pascal - 運算子
- Pascal - 決策制定
- Pascal - 迴圈
- Pascal - 函式
- Pascal - 過程
- Pascal - 變數作用域
- Pascal - 字串
- Pascal - 布林值
- Pascal - 陣列
- Pascal - 指標
- Pascal - 記錄
- Pascal - 變體
- Pascal - 集合
- Pascal - 檔案處理
- Pascal - 記憶體
- Pascal - 單元
- Pascal - 日期和時間
- Pascal - 物件
- Pascal - 類
- Pascal 有用資源
- Pascal - 快速指南
- Pascal - 有用資源
- Pascal - 討論
Pascal - 按引用進行子程呼叫
按引用呼叫方法將一個引數的地址複製到形式引數中以傳遞給子程。在子程中,該地址用於訪問呼叫中使用的實際引數。這意味著對該引數所做的更改將影響傳遞的引數。
為了按引用傳遞引數,Pascal 允許定義可變引數。這可以透過在形式引數前加上關鍵字 var 來完成。讓我們以過程 swap() 為例,該過程交換兩個變數中的值並在呼叫子程中反映出此更改。
procedure swap(var x, y: integer); var temp: integer; begin temp := x; x:= y; y := temp; end;
接下來,讓我們按以下示例中所示按引用傳遞值來呼叫過程 swap() −
program exCallbyRef;
var
a, b : integer;
(*procedure definition *)
procedure swap(var x, y: integer);
var
temp: integer;
begin
temp := x;
x:= y;
y := temp;
end;
begin
a := 100;
b := 200;
writeln('Before swap, value of a : ', a );
writeln('Before swap, value of b : ', b );
(* calling the procedure swap by value *)
swap(a, b);
writeln('After swap, value of a : ', a );
writeln('After swap, value of b : ', b );
end.
當編譯並執行以上程式碼時,它會產生以下結果 −
Before swap, value of a : 100 Before swap, value of b : 200 After swap, value of a : 200 After swap, value of b : 100
這表明現在過程 swap() 已經更改了呼叫程式中的值。
pascal_procedures.htm