Heim > Backend-Entwicklung > C++ > Warum kann ich Arrays in C und C nicht direkt zuweisen, wohl aber innerhalb von Strukturen?

Warum kann ich Arrays in C und C nicht direkt zuweisen, wohl aber innerhalb von Strukturen?

Mary-Kate Olsen
Freigeben: 2024-12-05 20:08:15
Original
739 Leute haben es durchsucht

Why Can't I Directly Assign Arrays in C and C  , But I Can Within Structs?

Array-Zuweisung in C und C

C und C ermöglichen die mitgliedweise Zuweisung von Arrays innerhalb von Strukturen, jedoch nicht im Allgemeinen. Dieses Verhalten ist ein Ergebnis der historischen Entwicklung der Sprachen.

Anfangs wurden Arrays in C als Zeiger im Speicher modelliert, die als „gekochte Arrays“ bezeichnet werden. Bei der Einführung von Strukturen wurden Arrays innerhalb von Strukturen unterschiedlich behandelt, um die Speichersicherheit zu gewährleisten. Dies ermöglichte die mitgliedweise Zuweisung von Arrays innerhalb von Strukturen, ohne die Kompatibilität mit vorhandenem Code zu beeinträchtigen.

Im Gegensatz dazu wurde die Zuweisung von Arrays außerhalb von Strukturen im ursprünglichen C-Design nicht unterstützt. Grund dafür waren Bedenken hinsichtlich der Neubasierung von Zeigern und fehlender Größeninformationen für als Funktionsparameter deklarierte Arrays. Um Fehler und Kompatibilitätsprobleme zu vermeiden, wurde die explizite Zuweisung mit memcpy bevorzugt.

Wie jedoch Luther Blissett anmerkte, erlaubt die Spezifikation von C bezüglich der Strukturzuweisung explizit die mitgliedweise Zuweisung enthaltener Arrays. Dies war ein unbeabsichtigter Nebeneffekt des Entwurfs, wurde jedoch als eine Möglichkeit angenommen, das Kopieren von Daten innerhalb von Strukturen zu erleichtern, ohne etablierte Muster zu durchbrechen.

Daher ist die Unterstützung für die mitgliedweise Zuweisung von Arrays innerhalb von Strukturen, jedoch nicht allgemein, eine Erbe der frühen Entwurfsentscheidungen von C und der anschließenden Weiterentwicklung der Sprache, was zu einer Unterscheidung zwischen in Strukturen eingebetteten Arrays und unabhängig verwendeten Arrays führte.

Das obige ist der detaillierte Inhalt vonWarum kann ich Arrays in C und C nicht direkt zuweisen, wohl aber innerhalb von Strukturen?. 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