


Detaillierte Erläuterung der Strukturverwendung in der C-Sprache
Detaillierte Erläuterung der Verwendung von struct in der C-Sprache
In der C-Sprache können Sie eine Struktur ( Struktur) zum Speichern einer Gruppe verschiedener Datentypen. Die Definitionsform einer Struktur ist:
struct 结构体名{ 结构体所包含的变量或数组 };
Eine Struktur ist eine Sammlung, die mehrere Variablen oder Arrays enthält. Ihre Typen können gleich oder unterschiedlich sein. Jede dieser Variablen oder Arrays wird als Mitglied der Struktur bezeichnet.
Empfehlen Sie „C Language Tutorial“
Bitte sehen Sie sich das folgende Beispiel an:
struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 };
stu ist der Name der Struktur, die 5 Mitglieder enthält , bzw. Name, Anzahl, Alter, Gruppe, Punktzahl. Strukturelemente werden auf die gleiche Weise wie Variablen und Arrays definiert, mit der Ausnahme, dass sie nicht initialisiert werden können.
Achten Sie auf das Semikolon nach den geschweiften Klammern; es darf nicht fehlen, dies ist eine vollständige Aussage.
Eine Struktur ist auch ein Datentyp, der vom Programmierer definiert wird und mehrere andere Datentypen enthalten kann.
Datentypen wie int, float, char usw. werden von der C-Sprache selbst bereitgestellt und können nicht aufgeteilt werden. Wir nennen sie Basisdatentypen und Strukturen können auch mehrere Basisdatentypen enthalten. Kann andere Strukturen enthalten, die wir komplexe Datentypen oder konstruierte Datentypen nennen.
Strukturvariablen
Da die Struktur ein Datentyp ist, können Sie sie zum Definieren von Variablen verwenden. Zum Beispiel:
struct stu stu1, stu2;
definiert zwei Variablen stu1 und stu2, die beide vom Typ stu sind und aus 5 Mitgliedern bestehen. Beachten Sie, dass das Schlüsselwort struct nicht fehlen darf.
stu ist wie eine „Vorlage“, und die definierten Variablen haben die gleichen Eigenschaften. Die Struktur kann auch mit einer „Zeichnung“ verglichen werden und die Strukturvariablen mit „Teilen“, die auf der Grundlage derselben Zeichnung hergestellt wurden, haben die gleichen Eigenschaften.
Sie können beim Definieren der Struktur auch Strukturvariablen definieren:
struct stu{
char *name; //Name
int num ; Schülernummer
int age; //Alter
char group; //Lerngruppe
//Score
} stu1, stu2;
Fügen Sie die Variable einfach am Ende der Strukturdefinition ein.
Wenn Sie nur zwei Variablen benötigen, stu1 und stu2, und Sie den Strukturnamen nicht später zum Definieren anderer Variablen verwenden müssen, müssen Sie den Strukturnamen beim Definieren nicht wie folgt angeben:
struct{ //No stu
char *name; //Name
int num; //Studentennummer
int age;
char group; //Lerngruppe
float score; //Score
} stu1, stu2;
Das ist einfach zu schreiben, aber weil Da es keinen Strukturnamen gibt, können Sie diese Struktur später nicht zum Definieren neuer Variablen verwenden.
Theoretisch wird jedes Mitglied der Struktur kontinuierlich im Speicher gespeichert, was einem Array sehr ähnlich ist. Die Speicherverteilung der obigen Strukturvariablen stu1 und stu2 ist beispielsweise wie in der folgenden Abbildung dargestellt. belegt insgesamt 4+4+ 4+1+4 = 17 Bytes.
In der spezifischen Implementierung des Compilers kann es jedoch zu Lücken zwischen den einzelnen Mitgliedern kommen. Für stu1 und stu2 gibt es eine 3-Byte-Leerzeichenfüllung zwischen der Mitgliedsvariablengruppe und der Punktzahl (siehe Abbildung unten). . Auf diese Weise berechnet, belegen stu1 und stu2 tatsächlich 17 + 3 = 20 Bytes.
Was die Gründe für die „Risse“ zwischen Mitgliedsvariablen betrifft, werden wir im Abschnitt „Ausrichtung des C-Sprachspeichers zur Verbesserung der Adressierungseffizienz“ im Thema „Grundlagen des C-Sprachspeichers“ ausführlich erläutern.
Erfassung und Zuweisung von Mitgliedern
Strukturen ähneln Arrays. Sie sind auch eine Sammlung von Daten und ihre allgemeine Verwendung ergibt keinen großen Sinn. Arrays verwenden den Index [], um ein einzelnes Element zu erhalten, und Strukturen verwenden Punkte, um ein einzelnes Element zu erhalten. Das allgemeine Format zum Erhalten von Strukturmitgliedern ist:
结构体变量名.成员名;
Auf diese Weise können Sie den Wert des Mitglieds erhalten und dem Mitglied auch einen Wert zuweisen:
#include <stdio.h> int main(){ struct{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 } stu1; //给结构体成员赋值 stu1.name = "Tom"; stu1.num = 12; stu1.age = 18; stu1.group = 'A'; stu1.score = 136.5; //读取结构体成员的值 printf("%s的学号是%d,年龄是%d,在%c组,今年的成绩是%.1f!\n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score); return 0; }
Ergebnis ausführen:
Tom's Die Schülerzahl beträgt 12, das Alter 18 und in Gruppe A liegt die diesjährige Punktzahl bei 136,5!
Zusätzlich zur einzelnen Zuweisung von Werten an Mitglieder können Sie bei der Definition auch Werte als Ganzes zuweisen, zum Beispiel:
struct{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 } stu1, stu2 = { "Tom", 12, 18, 'A', 136.5 };
Die Gesamtzuweisung ist jedoch auf wann beschränkt Definieren von Strukturvariablen, und Sie können ihnen während der Verwendung nur Werte zuweisen. Den Mitgliedern werden Werte einzeln zugewiesen, was der Zuweisung von Arrays sehr ähnlich ist.
Es ist zu beachten, dass es sich bei der Struktur um einen benutzerdefinierten Datentyp handelt, der eine Vorlage zum Erstellen von Variablen darstellt und keinen Speicherplatz belegt. Nur Strukturvariablen enthalten echte Daten und erfordern Speicherplatz zum Speichern.
Weitere Inhalte zum Thema Programmierung finden Sie in der Spalte Einführung in die Programmierung auf der chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Strukturverwendung in der C-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



C Sprachdatenstruktur: Die Datenrepräsentation des Baumes und des Diagramms ist eine hierarchische Datenstruktur, die aus Knoten besteht. Jeder Knoten enthält ein Datenelement und einen Zeiger auf seine untergeordneten Knoten. Der binäre Baum ist eine besondere Art von Baum. Jeder Knoten hat höchstens zwei Kinderknoten. Die Daten repräsentieren structTreenode {intdata; structTreenode*links; structTreenode*rechts;}; Die Operation erstellt einen Baumtraversalbaum (Vorbereitung, in Ordnung und späterer Reihenfolge) Suchbauminsertion-Knoten Lösches Knotendiagramm ist eine Sammlung von Datenstrukturen, wobei Elemente Scheitelpunkte sind, und sie können durch Kanten mit richtigen oder ungerechten Daten miteinander verbunden werden, die Nachbarn darstellen.

Die Wahrheit über Probleme mit der Dateibetrieb: Dateiöffnung fehlgeschlagen: unzureichende Berechtigungen, falsche Pfade und Datei besetzt. Das Schreiben von Daten fehlgeschlagen: Der Puffer ist voll, die Datei ist nicht beschreibbar und der Speicherplatz ist nicht ausreichend. Andere FAQs: Langsame Dateitraversal, falsche Textdateicodierung und Binärdatei -Leser -Fehler.

C -Sprachfunktionen sind die Grundlage für die Code -Modularisierung und das Programmaufbau. Sie bestehen aus Deklarationen (Funktionsüberschriften) und Definitionen (Funktionskörper). C Sprache verwendet standardmäßig Werte, um Parameter zu übergeben, aber externe Variablen können auch mit dem Adresspass geändert werden. Funktionen können oder haben keinen Rückgabewert, und der Rückgabewerttyp muss mit der Deklaration übereinstimmen. Die Benennung von Funktionen sollte klar und leicht zu verstehen sein und mit Kamel oder Unterstrich die Nomenklatur. Befolgen Sie das Prinzip der einzelnen Verantwortung und behalten Sie die Funktion ein, um die Wartbarkeit und die Lesbarkeit zu verbessern.

Wie gibt ich einen Countdown in C aus? Antwort: Verwenden Sie Schleifenanweisungen. Schritte: 1. Definieren Sie die Variable N und speichern Sie die Countdown -Nummer in der Ausgabe. 2. Verwenden Sie die while -Schleife, um n kontinuierlich zu drucken, bis n weniger als 1 ist; 3. Drucken Sie im Schleifenkörper den Wert von n aus; 4. Am Ende der Schleife subtrahieren Sie N um 1, um den nächsten kleineren gegenseitigen gegenseitigen gegenseitigen gegenseitig auszugeben.

Algorithmen sind die Anweisungen zur Lösung von Problemen, und ihre Ausführungsgeschwindigkeit und Speicherverwendung variieren. Bei der Programmierung basieren viele Algorithmen auf der Datensuche und Sortierung. In diesem Artikel werden mehrere Datenabruf- und Sortieralgorithmen eingeführt. Die lineare Suche geht davon aus, dass es ein Array gibt [20.500,10,5,100, 1,50] und die Nummer 50 ermitteln muss. Der lineare Suchalgorithmus prüft jedes Element im Array Eins nach eins nach dem anderen, bis der Zielwert gefunden oder das vollständige Array durchquert wird. Der Algorithmus-Flussdiagramm lautet wie folgt: Der Pseudo-Code für die lineare Suche lautet wie folgt: Überprüfen Sie jedes Element: Wenn der Zielwert gefunden wird: Return Return Falsch C-Sprache Implementierung: #includeIntmain (void) {i

Fehlerbehebungstipps für C -Sprachverarbeitungsdateien Wenn Dateien in der C -Sprache verarbeitet werden, können Sie auf verschiedene Probleme stoßen. Das Folgende sind häufig zu Problemen und entsprechende Lösungen: Problem 1: Der Dateicode kann nicht geöffnet werden: Datei*fp = fopen ("myFile.txt", "r"); if (fp == null) {// Datei Öffnen fehlgeschlagen} Grund} Grund: Dateipfad -Fehler -Datei nicht vorhandener Datei -Read -Lösung vorhanden. Charbuffer [100]; size_tread_bytes = fread (Puffer, 1, Siz

C Sprachmultithreading -Programmierhandbuch: Erstellen von Threads: Verwenden Sie die Funktion pThread_create (), um Thread -ID, Eigenschaften und Threadfunktionen anzugeben. Threadsynchronisation: Verhindern Sie den Datenwettbewerb durch Mutexes, Semaphoren und bedingte Variablen. Praktischer Fall: Verwenden Sie Multi-Threading, um die Fibonacci-Nummer zu berechnen, mehrere Threads Aufgaben zuzuweisen und die Ergebnisse zu synchronisieren. Fehlerbehebung: Lösen Sie Probleme wie Programmabstürze, Thread -Stop -Antworten und Leistungs Engpässe.

C -Sprachfunktionen sind wiederverwendbare Codeblöcke. Sie erhalten Input, führen Vorgänge und Rückgabergebnisse aus, die modular die Wiederverwendbarkeit verbessert und die Komplexität verringert. Der interne Mechanismus der Funktion umfasst Parameterübergabe-, Funktionsausführung und Rückgabeteile. Der gesamte Prozess beinhaltet eine Optimierung wie die Funktion inline. Eine gute Funktion wird nach dem Prinzip der einzigen Verantwortung, der geringen Anzahl von Parametern, den Benennungsspezifikationen und der Fehlerbehandlung geschrieben. Zeiger in Kombination mit Funktionen können leistungsstärkere Funktionen erzielen, z. B. die Änderung der externen Variablenwerte. Funktionszeiger übergeben Funktionen als Parameter oder speichern Adressen und werden verwendet, um dynamische Aufrufe zu Funktionen zu implementieren. Das Verständnis von Funktionsmerkmalen und Techniken ist der Schlüssel zum Schreiben effizienter, wartbarer und leicht verständlicher C -Programme.
