<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Zuweisung</id>
	<title>Zuweisung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Zuweisung"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Zuweisung&amp;action=history"/>
	<updated>2026-06-12T09:08:54Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Zuweisung&amp;diff=616827&amp;oldid=prev</id>
		<title>imported&gt;Alfie66: /* Notation */ S und R</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Zuweisung&amp;diff=616827&amp;oldid=prev"/>
		<updated>2025-07-05T17:58:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Notation: &lt;/span&gt; S und R&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Dieser Artikel|behandelt den Begriff bei der Programmierung. Zum Begriff im Arbeits- und Beamtenrecht siehe [[Zuweisung (Recht)]]. Zur Zuweisung von Funkfrequenzen siehe [[Frequenzverwaltung]].}}&lt;br /&gt;
&lt;br /&gt;
Unter einer &amp;#039;&amp;#039;&amp;#039;Zuweisung&amp;#039;&amp;#039;&amp;#039; (englisch &amp;#039;&amp;#039;assignment&amp;#039;&amp;#039;) versteht man in einer [[Imperative Programmiersprache|imperativen Programmiersprache]] einen Typ von [[Anweisung (Programmierung)|Anweisung]] (englisch &amp;#039;&amp;#039;statement&amp;#039;&amp;#039;), durch den eine [[Variable (Programmierung)|Variable]] einen neuen Wert erhält. In Abgrenzung von anderen Anweisungstypen, die ebenfalls den Wert einer Variablen verändern können (zum Beispiel Aufruf einer [[Prozedur (Programmierung)|Prozedur]] mit Nebeneffekten), spricht man nur dann von einer Zuweisung, wenn der Zuweisungsoperator der jeweiligen Programmiersprache verwendet wird. Viele Programmiersprachen berücksichtigen hierbei die [[Zuweisungskompatibilität]] der beteiligten [[Ausdruck (Programmierung)|Ausdrücke]] und Variablen, um [[Programmfehler]] zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
Bevor eine Zuweisung eines Wertes an eine Variable erfolgen kann, ist es in vielen Programmiersprachen erforderlich, diese explizit [[Deklaration (Programmierung)|zu deklarieren]]. In manchen Programmiersprachen wird dies bei einer Zuweisung an eine noch nicht deklarierte Variable implizit ausgeführt (zum Beispiel in [[Perl (Programmiersprache)|Perl]], nicht aber in [[C++]]).&lt;br /&gt;
&lt;br /&gt;
== Notation ==&lt;br /&gt;
Im Folgenden sei &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; eine Variable und &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ein [[Ausdruck (Programmierung)|Ausdruck]] (englisch &amp;#039;&amp;#039;expression&amp;#039;&amp;#039;). Die Beispiele zeigen einige Notationen in unterschiedlichen Programmiersprachen.&lt;br /&gt;
; &amp;lt;code&amp;gt;v = a&amp;lt;/code&amp;gt;&lt;br /&gt;
: [[Java (Programmiersprache)|Java]], [[C (Programmiersprache)|C]], [[C++]], [[C-Sharp|C#]], [[Python (Programmiersprache)|Python]], [[Visual Basic .NET]], [[PHP]], [[JavaScript]], [[Perl (Programmiersprache)|Perl]], [[Objective-C]], [[Swift (Programmiersprache)|Swift]], [[Go (Programmiersprache)|Go]], [[Ruby (Programmiersprache)|Ruby]] &amp;lt;!-- Reihenfolge nach http://www.tiobe.com/tiobe-index/ --&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;v := a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: [[Ada (Programmiersprache)|Ada]], [[ALGOL]], [[Eiffel (Programmiersprache)|Eiffel]], [[Modula-2]], [[Oberon (Programmiersprache)|Oberon]], [[Pascal (Programmiersprache)|Pascal]], [[Seed7]], [[Smalltalk (Programmiersprache)|Smalltalk]]&lt;br /&gt;
; &amp;lt;code&amp;gt;v &amp;lt;- a&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[S (Programmiersprache)|S]], [[R (Programmiersprache)|R]]&lt;br /&gt;
; &amp;lt;code&amp;gt;set v a &amp;lt;/code&amp;gt;&lt;br /&gt;
: [[Tcl]]&lt;br /&gt;
; &amp;lt;code&amp;gt;MOVE a TO v&amp;lt;/code&amp;gt;&lt;br /&gt;
: [[COBOL]]&lt;br /&gt;
; &amp;lt;code&amp;gt;COMPUTE v = a&amp;lt;/code&amp;gt;&lt;br /&gt;
: [[COBOL]]&lt;br /&gt;
; &amp;lt;code&amp;gt;MAKE &amp;quot;v :a&amp;lt;/code&amp;gt;&lt;br /&gt;
: [[Logo (Programmiersprache)|Logo]]&lt;br /&gt;
&lt;br /&gt;
=== Syntaktische Eigenheiten ===&lt;br /&gt;
Die Zuweisung kann in den Fällen, wo sie nur mit einem einfachen [[Gleichheitszeichen]] symbolisiert wird, leicht mit dem mathematischen Gleichheitszeichen verwechselt werden. Die seit der Erfindung von [[FORTRAN]] häufig in Programmiersprachen zu findende Zuweisung zu einer Variablen mit dem Gleichheitszeichen (zum Beispiel &amp;#039;&amp;#039;x = y&amp;#039;&amp;#039;) kann daher leicht zu Irritationen oder Verwechslungen führen: die beiden Zuweisungen &amp;#039;&amp;#039;x = y&amp;#039;&amp;#039; (Zuweisung des Wertes der Variablen &amp;#039;&amp;#039;y&amp;#039;&amp;#039; zur Variablen &amp;#039;&amp;#039;x&amp;#039;&amp;#039;) und &amp;#039;&amp;#039;y = x&amp;#039;&amp;#039; (Zuweisung des Wertes der Variablen &amp;#039;&amp;#039;x&amp;#039;&amp;#039; zur Variablen &amp;#039;&amp;#039;y&amp;#039;&amp;#039;) haben jeweils eine völlig andere Bedeutung als die beiden entsprechenden booleschen Ausdrücke mit [[Relationaler Operator|relationalen Operatoren]] (Vergleich auf Gleichheit von &amp;#039;&amp;#039;x&amp;#039;&amp;#039; und &amp;#039;&amp;#039;y&amp;#039;&amp;#039;), die in beiden Fällen zu einem identischen booleschen Ergebnis führen.&amp;lt;ref&amp;gt;Niklaus Wirth: [https://people.inf.ethz.ch/wirth/Articles/GoodIdeas_origFig.pdf &amp;#039;&amp;#039;Good Ideas, Through the Looking Glass&amp;#039;&amp;#039;, Abschnitt 4.1 &amp;#039;&amp;#039;Notation and Syntax&amp;#039;&amp;#039;] (PDF; 207&amp;amp;nbsp;kB), Zürich (2005)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erschwerend kommt in einigen Programmiersprachen hinzu, dass die Zuweisung in andere Anweisungen integriert werden kann, wenn sie selber als ein Ergebniswert interpretiert werden kann. Die folgenden beiden Beispiele zeigen zwei Varianten einer entsprechenden Programmsequenz in der Programmiersprache&amp;amp;nbsp;C, die beide zu sehr leicht zu übersehenden [[Programmierfehler]]n führen kann:&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int i = 0;&lt;br /&gt;
if (i = 1) {&lt;br /&gt;
    // Dieser Block wird immer ausgeführt,&lt;br /&gt;
    // weil die Zuweisung i = 1 immer das numerische Ergebnis 1 hat,&lt;br /&gt;
    // was als der boolesche Wert &amp;quot;wahr&amp;quot; interpretiert wird.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int i = 0;&lt;br /&gt;
if (i == 1) {&lt;br /&gt;
    // Dieser Block wird nie ausgeführt,&lt;br /&gt;
    // weil die Vergleichsoperation i == 1 immer das numerische Ergebnis 0 hat,&lt;br /&gt;
    // was als der boolesche Wert &amp;quot;falsch&amp;quot; interpretiert wird.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mehrfachzuweisungen ==&lt;br /&gt;
In manchen Programmiersprachen ist es auch möglich, mehrere Zuweisungen innerhalb einer Anweisung zu formulieren. So können etwa auf der linken Seite des Zuweisungs-Operators mehrere Variablen-Namen und auf der rechten Seite mehrere Ausdrücke jeweils durch Kommata getrennt notiert werden.&lt;br /&gt;
 v1,v2 = a1,a2         [[Ruby (Programmiersprache)|Ruby]]&lt;br /&gt;
 ($v1,$v2) = ($a1,$a2) [[Perl (Programmiersprache)|Perl]]&lt;br /&gt;
 [v1, v2] = [a1, a2]   [[JavaScript]] linksseitige Destrukturierung des rechtsseitigen Arrays&lt;br /&gt;
 $v1,$v2 = $a1,$a2     [[Windows PowerShell]]&lt;br /&gt;
 (psetf v1 a1 v2 a2)   [[Common Lisp]]&lt;br /&gt;
In Programmiersprachen, die Mehrfachzuweisungen unterstützen, lassen sich mit einem Konstrukt der Form&lt;br /&gt;
 v1,v2 := v2,v1&lt;br /&gt;
die Werte der beiden Variablen &amp;lt;code&amp;gt;v1&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;v2&amp;lt;/code&amp;gt; austauschen. Erlaubt eine Sprache keine Mehrfachzuweisungen, dann benötigt man im allgemeinen Fall eine Hilfsvariable, um die Inhalte zweier Variablen auszutauschen; man spricht dann von einem [[Dreieckstausch]].&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierung]]&lt;br /&gt;
[[Kategorie:Programmiersprachelement]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Alfie66</name></author>
	</entry>
</feed>