Heim > Backend-Entwicklung > C++ > Übergibt C Objekte nach Wert oder nach Referenz?

Übergibt C Objekte nach Wert oder nach Referenz?

Barbara Streisand
Freigeben: 2024-12-05 00:15:12
Original
1034 Leute haben es durchsucht

Does C   Pass Objects by Value or by Reference?

Übergibt C Objekte als Wert oder Referenz?

Frage:

In C , Es scheint Unklarheiten darüber zu geben, ob Objekte als Wert oder als Verweis auf Funktionen übergeben werden. Während einfache Datentypen wie Ganzzahlen und Gleitkommazahlen als Wert übergeben werden, ist unklar, was mit Arrays und Objekten passiert. Übergibt C Objekte nach Wert oder Referenz?

Antwort:

In C erfolgt die Argumentübergabe hauptsächlich nach Wert, was bedeutet, dass eine Kopie des Arguments erstellt und übergeben wird zur Funktion. Es gibt jedoch Möglichkeiten, Argumente per Referenz zu übergeben, sodass die Funktion die ursprüngliche Variable direkt ändern kann.

Im Einzelnen:

  • In void foo(type arg) ist das Argument arg als Wert übergeben. Dies gilt für einfache Typen, Zeiger und Klassentypen. Bei Arrays wird ein Zeiger auf das erste Element übergeben, keine Kopie des Arrays.
  • In void foo(type& arg) wird das Argument arg als Referenz übergeben. Dadurch kann die Funktion die ursprüngliche Variable ändern.
  • Wenn bei Arrays die Array-Größe zur Kompilierungszeit bekannt ist, kann sie als Referenz mit void foo(type (&arg)[10]) übergeben werden.

Daher werden Objekte in C im Allgemeinen als Wert übergeben, es sei denn, sie werden explizit durch die Verwendung des Referenzoperators „&“ als Referenz übergeben.

Das obige ist der detaillierte Inhalt vonÜbergibt C Objekte nach Wert oder nach Referenz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage