suchen
HeimBackend-EntwicklungC#.Net-TutorialWas bedeutet String-Zuweisung?

Strings werden hauptsächlich zum Programmieren verwendet. Strings ähneln Zeichenarrays im Speicher, sodass ein einzelnes Element jedes Bits extrahiert werden kann. Beispielsweise s="abcdefghij", dann s[1]="a", s [9]="j", und die Nullposition der Zeichenfolge entspricht genau ihrer Länge, z. B. s[0]=10 (※Ansistring verfügt nicht über die obige Funktion.) Dies kann uns viel Komfort bieten, z Als hochpräzise Operationen kann jedes Bit in eine Zahl umgewandelt und in einem Array gespeichert werden.

Was bedeutet String-Zuweisung?

Für die Zeichenfolgenzuweisung gelten jedoch bestimmte Anforderungen. Beispielsweise können C-Sprachoperatoren überhaupt nicht mit Zeichenfolgen arbeiten. In der C-Sprache werden Zeichenfolgen als Arrays behandelt. Daher unterliegen sie den gleichen Einschränkungen wie Arrays. Insbesondere können sie nicht mit C-Sprachoperatoren kopiert und verglichen werden.

String-Zuweisungsmethode

In der C-Sprache gibt es zwei Formen des String-Ausdrucks: Eine liegt in Form eines Zeichenarrays vor, z. B. char str[20] ="Ich liebe China"; Der andere hat die Form eines Zeichenzeigers, wie zum Beispiel char *str="Ich liebe China". Zeichenfolgen können Zeichenzeigervariablen zugewiesen werden oder Zeichenfolgen können in Zeichenarrays gespeichert werden. Weil die C-Sprache keine direkte syntaktische Zuckerunterstützung für Zeichenfolgen bietet. Darüber hinaus verarbeiten viele Methoden der C-Standardbibliothek Zeichenfolgen auf der Grundlage der Nullzeichenterminierung, die beachtet werden muss.

char *p,a='5';
p=&a;                     //显然是正确的,
p="abcd";              //但为什么也可以这样赋值??

Im obigen Programm bewirken doppelte Anführungszeichen drei Dinge: Platzieren (im Konstantenbereich) und Speichern der Zeichenfolge; Hinzufügen von „/0“ am Ende der Zeichenfolge; Hier wird die zurückgegebene Adresse p zugewiesen.

Aber warum funktioniert der Ausdruck char *p = „hello“; aber das Ändern von p in ein Array und das anschließende Zuweisen eines Werts funktioniert nicht. Dies liegt daran, dass, wenn die Zeichenfolgenkonstante „hello“ in einem Ausdruck erscheint, der vom „hello“-Ausdruck verwendete Wert die Adresse ist, an der diese Zeichen gespeichert sind (im Konstantenbereich), und nicht die Zeichen selbst.

Sie können also einem Zeiger p, der auf ein Zeichen zeigt, eine Zeichenfolge zuweisen, aber Sie können keine Zeichenfolge einem Zeichenarray zuweisen.

char a[10] = „hello“; Dies ist auch durch die C-Sprachinitialisierung möglich. Wenn es als char a[10] geschrieben wird, dann ist a = „hello“ das falsch. Es ist auch ein Array von a, char a[10] = „hello“; dies ist die Initialisierung des Arrays und es ist dasselbe wie a[0] = ‚h‘ a[1] = ‚e‘….

Aber das Ändern in char a [10] und dann a = „hello“ funktioniert nicht. Der Wert, der „hello“ zugewiesen wird, ist eine Adresse, und obwohl a auch eine Adresse hat, unterscheidet sich dies von Ein Zeiger. Der Wert von ist eine Adresse, und obwohl der Wert des Arrays auch eine Adresse ist, ist er eine Konstante, sodass einer Konstanten kein Wert zugewiesen werden kann. [3]

Lassen Sie es uns testen:

#include <stdio.h> int main(){       char *p = "hello";        printf("%s",p);       
        char a[10];        a = "hello";      
        return 0;}error C2440: &#39;=&#39; : cannot convert from &#39;char [6]&#39; to &#39;char [10]&#39;        There is no context in which this conversion is possible

Wenn Sie eine solche Fehlermeldung sehen, versuchen Sie, char a[10] in char a[6] zu ändern.

error C2106: ‘=’ : left operand must be l-value

Die linke Seite Seite des Operators sollte ein „L-Wert“ sein. Der sogenannte „L-Wert“ bezieht sich auf die Menge, die im Programm Speicherplatz belegt und geändert werden kann, wie z. B. verschiedene Variablen.

Bei Verwendung eines Zeigers kann der Zeiger erhöht werden, der Array-Name kann jedoch nicht erhöht werden. Der Compiler weist dem Array Speicherplatz zu, und die Adresse des Arrays a stellt eine Konstante dar definitiv nicht möglich.

Gleichzeitig identifiziert der Compiler beim Erhöhen des Zeigers automatisch den Typ. Wenn der Zeiger beispielsweise auf den Typ int zeigt und Sie die nächste Adresse abrufen möchten, p++ den Zeiger. Verwenden Sie nicht p+4.

Es ist zu beachten, dass bei Verwendung von Void-Zeigern keine Zeigerarithmetik verwendet werden kann, da der Void-Compiler die Länge des Typs (dh das Volumen des Objekts, auf das der Zeiger zeigt) nicht erkennen kann ist für p++ unzulässig, das heißt, mathematische Operationen können nicht ausgeführt werden, und die *-Wert-Operation kann nicht verwendet werden. Wenn Sie sie verwenden möchten, müssen Sie sie in andere Typen konvertieren.

Das obige ist der detaillierte Inhalt vonWas bedeutet String-Zuweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
Was sind die Alternativen zu Null in der C -SpracheWas sind die Alternativen zu Null in der C -SpracheMar 03, 2025 pm 05:37 PM

In diesem Artikel wird die Herausforderungen des Nullzeigers in C untersucht. Es argumentiert, dass das Problem nicht null selbst, sondern seinen Missbrauch ist. Der Artikel beschreibt Best Practices zur Verhinderung der Verhindern, einschließlich Vor-Dre-Dre-Dereferenz-Überprüfungen, Zeiger initiali

So fügen Sie C-Compiler der nächsten Ebene hinzuSo fügen Sie C-Compiler der nächsten Ebene hinzuMar 03, 2025 pm 05:44 PM

In diesem Artikel wird erläutert, wie Sie neue Zeilenzeichen in C mit der \ n Escape -Sequenz innerhalb von Printf erstellen und Funktionen setzt. Es beschreibt die Funktionalität und liefert Codebeispiele, die die Verwendung für Zeilenumbrüche in der Ausgabe demonstrieren.

Welcher C -Sprachkompiler ist besser?Welcher C -Sprachkompiler ist besser?Mar 03, 2025 pm 05:39 PM

Dieser Artikel führt Anfänger bei der Auswahl eines C -Compilers. Es wird argumentiert, dass GCC aufgrund seiner Benutzerfreundlichkeit, der breiten Verfügbarkeit und der umfangreichen Ressourcen für Anfänger am besten geeignet ist. Es wird jedoch auch GCC, Clang, MSVC und TCC vergleicht, wodurch ihre Unterschiede hervorgehoben werden

Ist Null in der modernen Programmierung in der C -Sprache noch wichtig?Ist Null in der modernen Programmierung in der C -Sprache noch wichtig?Mar 03, 2025 pm 05:35 PM

Dieser Artikel betont die anhaltende Bedeutung von NULL in der modernen C -Programmierung. Trotz Fortschritten bleibt NULL für die explizite Zeigerverwaltung von entscheidender Bedeutung und verhindert Segmentierungsfehler, indem das Fehlen einer gültigen Speicheradresse markiert wird. Bestes Prac

Was sind die Webversionen von C -Sprach Compilern?Was sind die Webversionen von C -Sprach Compilern?Mar 03, 2025 pm 05:42 PM

Dieser Artikel bewertet Online -C -Compiler für Anfänger, die sich auf die Benutzerfreundlichkeit und Debugging -Funktionen konzentrieren. OnlineGDB und Repl.it sind für ihre benutzerfreundlichen Schnittstellen und hilfreichen Debugging-Tools hervorgehoben. Andere Optionen wie Programmiz und Compil

C Sprache Online -Programmierwebsite C Sprachkompiler Offizielle Website ZusammenfassungC Sprache Online -Programmierwebsite C Sprachkompiler Offizielle Website ZusammenfassungMar 03, 2025 pm 05:41 PM

Dieser Artikel vergleicht Online -C -Programmierplattformen und zeigt Unterschiede in Funktionen wie Debugging -Tools, IDE -Funktionalität, Standardkonformität und Speicher-/Ausführungsgrenzen. Es wird argumentiert, dass die "beste" Plattform von den Benutzerbedürfnissen abhängt.

Methode zum Kopieren von Code nach C -SprachkompilerMethode zum Kopieren von Code nach C -SprachkompilerMar 03, 2025 pm 05:43 PM

In diesem Artikel werden effizientes Codekopieren in C -IDEs erläutert. Es wird betont, dass das Kopieren eine IDE -Funktion ist, keine Compiler -Funktion, und Details Strategien für eine verbesserte Effizienz, einschließlich der Verwendung von IDE -Auswahltools, Codefalten, Suchen/Ersetzen, Templa

So lösen Sie das Problem, das Ausgangsfenster durch den C -Sprachkompiler nicht zu verbessernSo lösen Sie das Problem, das Ausgangsfenster durch den C -Sprachkompiler nicht zu verbessernMar 03, 2025 pm 05:40 PM

In diesem Artikel wird die Ausgabefenster in der C -Programmkompilierung fehlt. Es werden Ursachen untersucht, wie das Ausführen der ausführbaren Datei, Programmfehler, falsche Compiler -Einstellungen, Hintergrundprozesse und schnelle Programmabschluss. Lösungen umfassen Ch

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version