<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?action=history&amp;feed=atom&amp;title=Call_by_Value</id>
		<title>Call by Value - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://ls14-eini.cs.tu-dortmund.de/index.php?action=history&amp;feed=atom&amp;title=Call_by_Value"/>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;action=history"/>
		<updated>2026-06-22T10:31:13Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in EINI</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1838&amp;oldid=prev</id>
		<title>Kristin: /* Beispiel */</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1838&amp;oldid=prev"/>
				<updated>2016-09-26T17:28:24Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Beispiel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 26. September 2016, 17:28 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot; &gt;Zeile 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der unerfahrene Programmierer, der diesen Code schreiben mag, wird hier denken, die Ausgabe des Programmes (Zeile 4) sei '''10'''. Tatsächlich ist sie jedoch '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der unerfahrene Programmierer, der diesen Code schreiben mag, wird hier denken, die Ausgabe des Programmes (Zeile 4) sei '''10'''. Tatsächlich ist sie jedoch '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine [[int]]-Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5 (Zeile 2). Beim Aufruf von der Methode &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(Zeile 3)&lt;/del&gt;. Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen (Zeile &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;6&lt;/del&gt;)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine [[int]]-Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5 (Zeile 2). Beim Aufruf von der Methode &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst. Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;(Zeile &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;3&lt;/ins&gt;) Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem Fall ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Zeile 7 hat daher keinen Einfluss auf die Variablen der Funktion &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt;&lt;/ins&gt;. Daher lautet die Ausgabe logischerweise '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;. Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem Fall ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist. Daher lautet die Ausgabe logischerweise '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kristin</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1837&amp;oldid=prev</id>
		<title>Kristin: /* Beispiel */</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1837&amp;oldid=prev"/>
				<updated>2016-09-26T17:22:32Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Beispiel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 26. September 2016, 17:22 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot; &gt;Zeile 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine [[int]]-Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5 (Zeile 2). Beim Aufruf von der Methode &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst (Zeile 3). Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen (Zeile 6). &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine [[int]]-Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5 (Zeile 2). Beim Aufruf von der Methode &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst (Zeile 3). Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen (Zeile 6). &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;.Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem Fall ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist. Daher lautet die Ausgabe logischerweise '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;. Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem Fall ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist. Daher lautet die Ausgabe logischerweise '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kristin</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1836&amp;oldid=prev</id>
		<title>Kristin: /* Beispiel */</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1836&amp;oldid=prev"/>
				<updated>2016-09-26T17:21:35Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Beispiel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 26. September 2016, 17:21 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot; &gt;Zeile 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der unerfahrene Programmierer, der diesen Code schreiben mag, wird hier denken, die Ausgabe des Programmes sei '''10'''. Tatsächlich ist sie jedoch '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der unerfahrene Programmierer, der diesen Code schreiben mag, wird hier denken, die Ausgabe des Programmes &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(Zeile 4) &lt;/ins&gt;sei '''10'''. Tatsächlich ist sie jedoch '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine [[int]]-Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5. Beim Aufruf von &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst. Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. Der Aufruf &amp;lt;code&amp;gt;callee&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;i&lt;/del&gt;)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine [[int]]-Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(Zeile 2)&lt;/ins&gt;. Beim Aufruf von &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;der Methode &lt;/ins&gt;&amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(Zeile 3)&lt;/ins&gt;. Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen (&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Zeile 6&lt;/ins&gt;). &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem Fall ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;.&lt;/ins&gt;Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem Fall ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Daher lautet die Ausgabe logischerweise '''5'''&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Was tatsächlich passiert, ist, dass beim Aufruf einer Funktion ein neuer [[Stack#Stackframe | Stackframe]] für diesen Aufruf auf den [[Stack]] gelegt wird und die lokalen Parametervariablen innerhalb dieses Stackframes mit den übergebenen Werten initialisiert werden.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Möchte man im Beispiel oben den Wert der Variablen &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;außerhalb der Funktion ändern, so wird man enttäuscht. Dies ist in [[Java]] mit primitiven Daten nicht möglich. Man benötigt eine Funktion mit einer [[Rückgabe]]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, das &lt;/del&gt;heißt die Funktion muss eine Eingabe erhalten, etwas berechnen und das Ergebnis der Berechnung ''explizit'' zurück geben. Der zurückgegebene Wert muss dann der Variablen als neuer Wert zugewiesen werden:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Möchte man im Beispiel oben den Wert der Variablen &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; außerhalb der Funktion ändern, so wird man enttäuscht. Dies ist in [[Java]] mit primitiven Daten nicht möglich. Man benötigt eine Funktion mit einer [[Rückgabe]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Das &lt;/ins&gt;heißt die Funktion muss eine Eingabe erhalten, etwas berechnen und das Ergebnis der Berechnung ''explizit'' zurück geben. Der zurückgegebene Wert muss dann der Variablen als neuer Wert zugewiesen werden:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kristin</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1835&amp;oldid=prev</id>
		<title>Hauer am 26. September 2016 um 17:00 Uhr</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1835&amp;oldid=prev"/>
				<updated>2016-09-26T17:00:40Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 26. September 2016, 17:00 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Zeile 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der&amp;#160; '''Call by Value''' funktioniert folgendermaßen: Beim Aufruf einer [[Methode]] wird der '''Wert''' einer Variablen zuerst aufgelöst und dann direkt an die aufgerufene Methode übergeben. Es wird also eine '''Kopie des Wertes''' der Variablen übergeben. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der&amp;#160; '''Call by Value''' funktioniert folgendermaßen: Beim Aufruf einer [[Methode]] wird der '''Wert''' einer Variablen zuerst aufgelöst und dann direkt an die aufgerufene Methode übergeben. Es wird also eine '''Kopie des Wertes''' der Variablen übergeben. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Da die '''Parameter''' einer Funktion &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;lokal auf dem &lt;/del&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Stack&lt;/del&gt;]] &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;der Methode liegen&lt;/del&gt;, sind diese unabhängig von denen, die beim Aufruf der Methode verwendet wurden. Innerhalb einer aufgerufenen Methode haben Änderungen an den [[Parametervariable|Parametervariablen]] demnach '''keinen Einfluss''' auf die Werte der übergebenen Variablen.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Da die '''Parameter''' einer Funktion [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Variable#Lokale Variable|lokal&lt;/ins&gt;]] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sind&lt;/ins&gt;, sind diese unabhängig von denen, die beim Aufruf der Methode verwendet wurden. Innerhalb einer aufgerufenen Methode haben Änderungen an den [[Parametervariable|Parametervariablen]] demnach '''keinen Einfluss''' auf die Werte der übergebenen Variablen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Problematik =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Problematik =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hauer</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1798&amp;oldid=prev</id>
		<title>Kristin am 13. September 2016 um 11:00 Uhr</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1798&amp;oldid=prev"/>
				<updated>2016-09-13T11:00:55Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 13. September 2016, 11:00 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Als &lt;/del&gt;'''Call by Value''' bezeichnet &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;man den Mechanismus der Parameterübergabe &lt;/del&gt;von [[Primitiver Datentyp|primitiven Datentypen&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]]. Sein Pendant ist der Mechanismus des [[Call by Reference&lt;/del&gt;]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Call by Value''' bezeichnet &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;die Übergabe von [[Parameter]]n &lt;/ins&gt;von [[Primitiver Datentyp|primitiven Datentypen]]. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Dabei &lt;/del&gt;wird &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;beim &lt;/del&gt;Aufruf einer Methode der Wert einer Variablen zuerst aufgelöst und dann direkt an die aufgerufene &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;Methode&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/del&gt;übergeben. Es wird also eine Kopie des Wertes der Variablen übergeben. Da die Parameter einer Funktion lokal auf dem [[Stack]] der &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;Methode&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/del&gt;liegen, sind diese unabhängig von denen, die beim Aufruf der Methode verwendet wurden. Änderungen an den [[Parametervariable|Parametervariablen]] &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;innerhalb einer aufgerufenen Methode haben &lt;/del&gt;demnach keinen Einfluss auf die Werte der übergebenen Variablen &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;innerhalb der aufrufenden Methode&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Bei [[Variablen]] mit [[Objekt|Objektdatentyp]] &lt;/ins&gt;wird &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;hingegen der [[Call by Reference]] verwendet.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Der&amp;#160; '''Call by Value''' funktioniert folgendermaßen: Beim &lt;/ins&gt;Aufruf einer &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Methode&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] wird &lt;/ins&gt;der &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;Wert&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;einer Variablen zuerst aufgelöst und dann direkt an die aufgerufene Methode übergeben. Es wird also eine &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;Kopie des Wertes&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;der Variablen übergeben. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Da die &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;Parameter&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;einer Funktion lokal auf dem [[Stack]] der Methode liegen, sind diese unabhängig von denen, die beim Aufruf der Methode verwendet wurden. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Innerhalb einer aufgerufenen Methode haben &lt;/ins&gt;Änderungen an den [[Parametervariable|Parametervariablen]] demnach &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;keinen Einfluss&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;auf die Werte der übergebenen Variablen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Problematik =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Problematik =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l26&quot; &gt;Zeile 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der unerfahrene Programmierer, der diesen Code schreiben mag, wird hier denken, die Ausgabe des Programmes sei '''10'''. Tatsächlich ist sie jedoch '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der unerfahrene Programmierer, der diesen Code schreiben mag, wird hier denken, die Ausgabe des Programmes sei '''10'''. Tatsächlich ist sie jedoch '''5'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;code&amp;gt;&lt;/del&gt;int&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/code&amp;gt; &lt;/del&gt;Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5. Beim Aufruf von &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst. Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen. Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;int&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]-&lt;/ins&gt;Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5. Beim Aufruf von &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst. Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen. Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem Fall ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem Fall ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot; &gt;Zeile 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Was tatsächlich passiert, ist, dass beim Aufruf einer Funktion ein neuer [[Stack#Stackframe | Stackframe]] für diesen Aufruf auf den [[Stack]] gelegt wird und die lokalen Parametervariablen innerhalb dieses Stackframes mit den übergebenen Werten initialisiert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Was tatsächlich passiert, ist, dass beim Aufruf einer Funktion ein neuer [[Stack#Stackframe | Stackframe]] für diesen Aufruf auf den [[Stack]] gelegt wird und die lokalen Parametervariablen innerhalb dieses Stackframes mit den übergebenen Werten initialisiert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Möchte man im Beispiel oben den Wert der Variablen &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&amp;#160; außerhalb der Funktion ändern, so wird man enttäuscht. Dies ist in Java mit primitiven Daten nicht möglich. Man benötigt eine Funktion mit einer [[Rückgabe]], das heißt die Funktion muss eine Eingabe erhalten, etwas berechnen und das Ergebnis der Berechnung ''explizit'' zurück geben. Der zurückgegebene Wert muss dann der Variablen als neuer Wert zugewiesen werden:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Möchte man im Beispiel oben den Wert der Variablen &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&amp;#160; außerhalb der Funktion ändern, so wird man enttäuscht. Dies ist in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Java&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;mit primitiven Daten nicht möglich. Man benötigt eine Funktion mit einer [[Rückgabe]], das heißt die Funktion muss eine Eingabe erhalten, etwas berechnen und das Ergebnis der Berechnung ''explizit'' zurück geben. Der zurückgegebene Wert muss dann der Variablen als neuer Wert zugewiesen werden:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kristin</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1507&amp;oldid=prev</id>
		<title>Solveig: /* Beispiel */</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1507&amp;oldid=prev"/>
				<updated>2016-06-16T09:20:20Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Beispiel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 16. Juni 2016, 09:20 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot; &gt;Zeile 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Was tatsächlich passiert, ist, dass beim Aufruf einer Funktion ein neuer [[Stack#Stackframe | Stackframe]] für diesen Aufruf auf den [[Stack]] gelegt wird und die lokalen Parametervariablen innerhalb dieses Stackframes mit den übergebenen Werten initialisiert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Was tatsächlich passiert, ist, dass beim Aufruf einer Funktion ein neuer [[Stack#Stackframe | Stackframe]] für diesen Aufruf auf den [[Stack]] gelegt wird und die lokalen Parametervariablen innerhalb dieses Stackframes mit den übergebenen Werten initialisiert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Möchte man im Beispiel oben den Wert der Variablen &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;i&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/del&gt;außerhalb der Funktion ändern, so wird man enttäuscht. Dies ist in Java mit primitiven Daten nicht möglich. Man benötigt eine Funktion mit einer [[Rückgabe]], das heißt die Funktion muss eine Eingabe erhalten, etwas berechnen und das Ergebnis der Berechnung ''explizit'' zurück geben. Der zurückgegebene Wert muss dann der Variablen als neuer Wert zugewiesen werden:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Möchte man im Beispiel oben den Wert der Variablen &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;i&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/code&amp;gt;&amp;#160; &lt;/ins&gt;außerhalb der Funktion ändern, so wird man enttäuscht. Dies ist in Java mit primitiven Daten nicht möglich. Man benötigt eine Funktion mit einer [[Rückgabe]], das heißt die Funktion muss eine Eingabe erhalten, etwas berechnen und das Ergebnis der Berechnung ''explizit'' zurück geben. Der zurückgegebene Wert muss dann der Variablen als neuer Wert zugewiesen werden:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Solveig</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1506&amp;oldid=prev</id>
		<title>Solveig: /* Problematik */</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=1506&amp;oldid=prev"/>
				<updated>2016-06-16T09:15:19Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Problematik&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 16. Juni 2016, 09:15 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot; &gt;Zeile 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ein mangelndes Verständnis der '''Call by Value'''-Funktionalität von Methodenaufrufen führt häufig zu dem Fehler, dass ein Programmierer eine Funktion, die eine Berechnung durchführt, formuliert und erwartet, dass die übergebene Variable durch den Aufruf ihren Wert ändert.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ein mangelndes Verständnis der '''Call by Value'''-Funktionalität von Methodenaufrufen führt häufig zu dem Fehler, dass ein Programmierer eine Funktion, die eine Berechnung durchführt, formuliert und erwartet, dass die übergebene Variable durch den Aufruf ihren Wert ändert.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Da jedoch durch '''Call by Value''' nur der Wert der Variablen, und nicht eine Referenz auf den Speicher der Variablen übergeben wird, hat diese Berechnung keinen Einfluss auf die Variable der aufrufenden Funktion. Dieser Fehler &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ist &lt;/del&gt;meistens dadurch behoben, dass der Wert der Variablen durch die Rückgabe der aufgerufenen Funktion ersetzt wird und die aufgerufene Funktion das Ergebnis ihrer Berechnung ''explizit'' zurück gibt (siehe Beispiel, unterer Code).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Da jedoch durch '''Call by Value''' nur der Wert der Variablen, und nicht eine Referenz auf den Speicher der Variablen übergeben wird, hat diese Berechnung keinen Einfluss auf die Variable der aufrufenden Funktion. Dieser Fehler &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kann &lt;/ins&gt;meistens dadurch behoben &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;werden&lt;/ins&gt;, dass der Wert der Variablen durch die Rückgabe der aufgerufenen Funktion ersetzt wird und die aufgerufene Funktion das Ergebnis ihrer Berechnung ''explizit'' zurück gibt (siehe Beispiel, unterer Code).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Beispiel ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Beispiel ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Solveig</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=715&amp;oldid=prev</id>
		<title>Kristin am 7. Februar 2016 um 19:08 Uhr</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=715&amp;oldid=prev"/>
				<updated>2016-02-07T19:08:54Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 7. Februar 2016, 19:08 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als '''Call by Value''' bezeichnet man den Mechanismus der Parameterübergabe von [[Primitiver Datentyp|primitiven Datentypen]]. Sein Pendant ist der Mechanismus des [[Call by Reference]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als '''Call by Value''' bezeichnet man den Mechanismus der Parameterübergabe von [[Primitiver Datentyp|primitiven Datentypen]]. Sein Pendant ist der Mechanismus des [[Call by Reference]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dabei wird beim Aufruf einer &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Funktion &lt;/del&gt;der Wert einer &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Variable &lt;/del&gt;zuerst aufgelöst und dann direkt an die &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aufrufende &lt;/del&gt;[[Methode]] übergeben. Es wird also eine Kopie des Wertes der Variablen übergeben. Da die Parameter einer Funktion lokal auf dem [[Stack]] der [[Methode]] liegen, sind diese unabhängig von denen, die beim Aufruf der Methode verwendet wurden. Änderungen an den [[Parametervariable|Parametervariablen]] innerhalb einer aufgerufenen Methode haben demnach keinen Einfluss auf die Werte der übergebenen Variablen innerhalb der aufrufenden Methode.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dabei wird beim Aufruf einer &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Methode &lt;/ins&gt;der Wert einer &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Variablen &lt;/ins&gt;zuerst aufgelöst und dann direkt an die &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;aufgerufene &lt;/ins&gt;[[Methode]] übergeben. Es wird also eine Kopie des Wertes der Variablen übergeben. Da die Parameter einer Funktion lokal auf dem [[Stack]] der [[Methode]] liegen, sind diese unabhängig von denen, die beim Aufruf der Methode verwendet wurden. Änderungen an den [[Parametervariable|Parametervariablen]] innerhalb einer aufgerufenen Methode haben demnach keinen Einfluss auf die Werte der übergebenen Variablen innerhalb der aufrufenden Methode.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Problematik =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Problematik =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kristin</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=714&amp;oldid=prev</id>
		<title>Kristin am 7. Februar 2016 um 19:06 Uhr</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=714&amp;oldid=prev"/>
				<updated>2016-02-07T19:06:20Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 7. Februar 2016, 19:06 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Zeile 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Problematik =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Problematik =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ein mangelndes Verständnis der '''Call by Value''' Funktionalität von Methodenaufrufen führt häufig zu dem Fehler, dass ein Programmierer eine Funktion &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;formuliert&lt;/del&gt;, die eine Berechnung durchführt, und &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;erwaret&lt;/del&gt;, dass die übergebene Variable durch den Aufruf ihren Wert ändert.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ein mangelndes Verständnis der '''Call by Value'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;-&lt;/ins&gt;Funktionalität von Methodenaufrufen führt häufig zu dem Fehler, dass ein Programmierer eine Funktion, die eine Berechnung durchführt, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;formuliert &lt;/ins&gt;und &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;erwartet&lt;/ins&gt;, dass die übergebene Variable durch den Aufruf ihren Wert ändert.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Da jedoch durch '''Call by Value''' nur der Wert der Variablen, und nicht eine Referenz auf den Speicher der Variablen&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/del&gt;übergeben wird, hat diese Berechnung &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dadurch &lt;/del&gt;keinen Einfluss auf die Variable der aufrufenden Funktion. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Statdessen &lt;/del&gt;ist &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;der Fehler &lt;/del&gt;meistens dadurch behoben, dass &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;wie im unteren Beispielcode, &lt;/del&gt;der Wert der Variablen durch die Rückgabe der aufgerufenen Funktion ersetzt wird und die aufgerufene Funktion das Ergebnis ihrer Berechnung ''explizit'' zurück gibt.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Da jedoch durch '''Call by Value''' nur der Wert der Variablen, und nicht eine Referenz auf den Speicher der Variablen übergeben wird, hat diese Berechnung keinen Einfluss auf die Variable der aufrufenden Funktion. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Dieser Fehler &lt;/ins&gt;ist meistens dadurch behoben, dass der Wert der Variablen durch die Rückgabe der aufgerufenen Funktion ersetzt wird und die aufgerufene Funktion das Ergebnis ihrer Berechnung ''explizit'' zurück gibt &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(siehe Beispiel, unterer Code)&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Beispiel ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Beispiel ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot; &gt;Zeile 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5. Beim Aufruf von &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst. Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen. Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Methode &amp;lt;code&amp;gt;caller()&amp;lt;/code&amp;gt; deklariert eine &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; mit dem Wert 5. Beim Aufruf von &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; wird die übergebene Variable &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; nun zuerst zum Wert 5 aufgelöst. Dann wird die Funktion &amp;lt;code&amp;gt;callee(int a)&amp;lt;/code&amp;gt; mit dem Wert 5 aufgerufen. Der Aufruf &amp;lt;code&amp;gt;callee(i)&amp;lt;/code&amp;gt; ist also in diesem Falle nicht zu unterscheiden von einem Aufruf &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Falle &lt;/del&gt;ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine Funktion, die primitive Daten als Parameter erwartet, kann mit konstanten Werten wie &amp;lt;code&amp;gt;callee(5)&amp;lt;/code&amp;gt; aufgerufen werden. Deshalb kann in diesem &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Fall &lt;/ins&gt;ein Aufruf mit 5 keinen Einfluss auf die 5 haben, da der Ausdruck &amp;quot;5&amp;quot; konstant ist.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Was tatsächlich passiert, ist, dass beim Aufruf einer Funktion ein neuer [[Stack#Stackframe | Stackframe]] für diesen Aufruf auf den [[Stack]] gelegt wird und die lokalen Parametervariablen innerhalb dieses Stackframes mit den übergebenen Werten initialisiert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Was tatsächlich passiert, ist, dass beim Aufruf einer Funktion ein neuer [[Stack#Stackframe | Stackframe]] für diesen Aufruf auf den [[Stack]] gelegt wird und die lokalen Parametervariablen innerhalb dieses Stackframes mit den übergebenen Werten initialisiert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Möchte man im Beispiel oben&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/del&gt;den Wert der Variablen '''i''' außerhalb der Funktion ändern, so wird man enttäuscht. Dies ist in Java mit primitiven Daten nicht möglich. Man benötigt eine Funktion mit einer [[Rückgabe]], das heißt die Funktion muss eine Eingabe erhalten, etwas berechnen und das Ergebnis der Berechnung ''explizit'' zurück geben. Der zurückgegebene Wert muss &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dan &lt;/del&gt;der Variablen als neuer Wert &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;zugweiesen &lt;/del&gt;werden:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Möchte man im Beispiel oben den Wert der Variablen '''i''' außerhalb der Funktion ändern, so wird man enttäuscht. Dies ist in Java mit primitiven Daten nicht möglich. Man benötigt eine Funktion mit einer [[Rückgabe]], das heißt die Funktion muss eine Eingabe erhalten, etwas berechnen und das Ergebnis der Berechnung ''explizit'' zurück geben. Der zurückgegebene Wert muss &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dann &lt;/ins&gt;der Variablen als neuer Wert &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zugewiesen &lt;/ins&gt;werden:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kristin</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=710&amp;oldid=prev</id>
		<title>Hauer am 7. Februar 2016 um 18:22 Uhr</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Call_by_Value&amp;diff=710&amp;oldid=prev"/>
				<updated>2016-02-07T18:22:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 7. Februar 2016, 18:22 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;Zeile 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dabei wird beim Aufruf einer Funktion der Wert einer Variable zuerst aufgelöst und dann direkt an die aufrufende [[Methode]] übergeben. Es wird also eine Kopie des Wertes der Variablen übergeben. Da die Parameter einer Funktion lokal auf dem [[Stack]] der [[Methode]] liegen, sind diese unabhängig von denen, die beim Aufruf der Methode verwendet wurden. Änderungen an den [[Parametervariable|Parametervariablen]] innerhalb einer aufgerufenen Methode haben demnach keinen Einfluss auf die Werte der übergebenen Variablen innerhalb der aufrufenden Methode.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dabei wird beim Aufruf einer Funktion der Wert einer Variable zuerst aufgelöst und dann direkt an die aufrufende [[Methode]] übergeben. Es wird also eine Kopie des Wertes der Variablen übergeben. Da die Parameter einer Funktion lokal auf dem [[Stack]] der [[Methode]] liegen, sind diese unabhängig von denen, die beim Aufruf der Methode verwendet wurden. Änderungen an den [[Parametervariable|Parametervariablen]] innerhalb einer aufgerufenen Methode haben demnach keinen Einfluss auf die Werte der übergebenen Variablen innerhalb der aufrufenden Methode.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Beispiel =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;= Problematik =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Ein mangelndes Verständnis der '''Call by Value''' Funktionalität von Methodenaufrufen führt häufig zu dem Fehler, dass ein Programmierer eine Funktion formuliert, die eine Berechnung durchführt, und erwaret, dass die übergebene Variable durch den Aufruf ihren Wert ändert.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Da jedoch durch '''Call by Value''' nur der Wert der Variablen, und nicht eine Referenz auf den Speicher der Variablen, übergeben wird, hat diese Berechnung dadurch keinen Einfluss auf die Variable der aufrufenden Funktion. Statdessen ist der Fehler meistens dadurch behoben, dass wie im unteren Beispielcode, der Wert der Variablen durch die Rückgabe der aufgerufenen Funktion ersetzt wird und die aufgerufene Funktion das Ergebnis ihrer Berechnung ''explizit'' zurück gibt.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=&lt;/ins&gt;= Beispiel &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=&lt;/ins&gt;=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Immer wenn eine Methode aufgerufen wird, werden übergebene Variablen zuerst aufgelöst und dann der resultierende Wert übergeben. Nehmen wir als Beispiel folgende zwei [[static | statische]] Methoden:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Immer wenn eine Methode aufgerufen wird, werden übergebene Variablen zuerst aufgelöst und dann der resultierende Wert übergeben. Nehmen wir als Beispiel folgende zwei [[static | statische]] Methoden:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l38&quot; &gt;Zeile 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 44:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ein mangelndes Verständnis der '''Call by Value''' Funktionalität von Methodenaufrufen führt häufig zu dem Fehler, dass ein Programmierer eine Funktion formuliert, die eine Berechnung durchführt, und erwaret, dass die übergebene Variable durch den Aufruf ihren Wert ändert. Da jedoch durch '''Call by Value''' nur der Wert der Variablen, und nicht eine Referenz auf den Speicher der Variablen, übergeben wird, hat diese Berechnung dadurch keinen Einfluss auf die Variable der aufrufenden Funktion. Statdessen ist der Fehler meistens dadurch behoben, dass wie im unteren Beispielcode, der Wert der Variablen durch die Rückgabe der aufgerufenen Funktion ersetzt wird und die aufgerufene Funktion das Ergebnis ihrer Berechnung ''explizit'' zurück gibt.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hauer</name></author>	</entry>

	</feed>