<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=StartprogrammingusingObjectPascal%3ACallingByReference</id>
	<title>StartprogrammingusingObjectPascal:CallingByReference - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=StartprogrammingusingObjectPascal%3ACallingByReference"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:CallingByReference&amp;action=history"/>
	<updated>2026-05-01T11:41:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:CallingByReference&amp;diff=315&amp;oldid=prev</id>
		<title>Onionmixer: SPOP 참조에의한호출 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:CallingByReference&amp;diff=315&amp;oldid=prev"/>
		<updated>2012-07-26T10:34:18Z</updated>

		<summary type="html">&lt;p&gt;SPOP 참조에의한호출 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===참조에 의한 호출===&lt;br /&gt;
&lt;br /&gt;
DoSomething의 x인자 선언부에 var 키워드를 추가하면 달라질 것입니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure DoSomething(var x: Integer);&lt;br /&gt;
begin&lt;br /&gt;
    x:= x * 2;&lt;br /&gt;
    Writeln(&amp;#039;From inside procedure: x = &amp;#039;, x);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
// main&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
    MyNumber: Integer;&lt;br /&gt;
begin&lt;br /&gt;
    MyNumber:= 5;&lt;br /&gt;
&lt;br /&gt;
    DoSomething(MyNumber);&lt;br /&gt;
    Writeln(&amp;#039;From main program, MyNumber = &amp;#039;, MyNumber);&lt;br /&gt;
    Writeln(&amp;#039;Press enter key to close&amp;#039;);&lt;br /&gt;
    Readln;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이제 x에 따라 MyNumber의 값이 달라질 것이며, 이는 이들 변수가 같은 메모리 위치를 공유한다는 의미입니다.&lt;br /&gt;
&lt;br /&gt;
이 때, 우리는 같은 형식의 변수(상수 아님)를 프로시저로 전달할 것입니다. 만약 인자를 Byte로 선언했다면, MyNumber는 Byte로 선언할 것입니다. 반면에 인자가 정수형이면 MyNumber역시 정수형이 될 것입니다.&lt;br /&gt;
&lt;br /&gt;
다음 예제는 인자에 변수를 필요로 하는 DoSomething을 호출했을 때, 오류가 생길 것입니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
DoSomething(5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
값에 의한 호출에서는 이전 코드에서는 사용할 수 있었는데, 인자로 전달한 값에 대해서만 다루었고, 5가 값이었습니다. 하지만 참조에 의한 호출에서는 인자로 전달한 변수에 대해 취급하며, 전달한 변수의 값에 대해 동작합니다.&lt;br /&gt;
&lt;br /&gt;
다음 예제에서는 두 개의 변수를 전달할 것이고, 프로시저에서 두 변수의 값을 바꿀 것입니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure SwapNumbers(var x, y: Integer);&lt;br /&gt;
var&lt;br /&gt;
    Temp: Integer;&lt;br /&gt;
begin&lt;br /&gt;
    Temp:= x;&lt;br /&gt;
    x:= y;&lt;br /&gt;
    y:= Temp;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
// main&lt;br /&gt;
var&lt;br /&gt;
    A, B: Integer;&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
    Write(&amp;#039;Please input value for A: &amp;#039;);&lt;br /&gt;
    Readln(A);&lt;br /&gt;
    Write(&amp;#039;Please input value for B: &amp;#039;);&lt;br /&gt;
    Readln(B);&lt;br /&gt;
&lt;br /&gt;
    SwapNumbers(A, B);&lt;br /&gt;
    Writeln(&amp;#039;A = &amp;#039;, A, &amp;#039;, and B = &amp;#039;, B);&lt;br /&gt;
    Writeln(&amp;#039;Press enter key to close&amp;#039;);&lt;br /&gt;
    Readln;&lt;br /&gt;
end. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:StartprogrammingusingObjectPascal]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>