Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C-Struktur

C-Struktur

In diesem Tutorial lernen Sie Strukturtypen in der C-Programmierung anhand von Beispielen kennen.

In der C-Programmierung ist ein Struct (oder eine Struktur) eine Sammlung von Variablen (die unterschiedlichen Typs sein können) unter einem einzigen Namen.


Strukturen definieren

Bevor Sie Strukturvariablen erstellen können, müssen Sie ihren Datentyp definieren. Um eine Struktur zu definieren, wird der struct Schlüsselwort wird verwendet.

Syntax der Struktur

struct structureName {
  dataType member1;
  dataType member2;
  ...
};

Zum Beispiel

struct Person {
  char name[50];
  int citNo;
  float salary;
};

Hier ein abgeleiteter Typ struct Person ist definiert. Jetzt können Sie Variablen dieses Typs erstellen.


Strukturvariablen erstellen

Wenn ein struct type deklariert ist, wird kein Speicherplatz oder Arbeitsspeicher zugewiesen. Um Speicher eines bestimmten Strukturtyps zuzuweisen und damit zu arbeiten, müssen wir Variablen erstellen.

So erstellen wir Strukturvariablen:

struct Person {
  // code
};

int main() {
  struct Person person1, person2, p[20];
  return 0;
}

Eine andere Möglichkeit, eine struct zu erstellen Variable ist:

struct Person {
   // code
} person1, person2, p[20];

In beiden Fällen


Auf Mitglieder einer Struktur zugreifen

Es gibt zwei Arten von Operatoren, die für den Zugriff auf Elemente einer Struktur verwendet werden.

  1. . - Mitgliedsoperator
  2. -> - Strukturzeigeroperator (wird im nächsten Tutorial besprochen)

Angenommen, Sie möchten auf das Gehalt zugreifen von person2 . So können Sie es tun.

person2.salary

Beispiel 1:C++-Strukturen

#include <stdio.h>
#include <string.h>

// create struct with person1 variable
struct Person {
  char name[50];
  int citNo;
  float salary;
} person1;

int main() {

  // assign value to name of person1
  strcpy(person1.name, "George Orwell");

  // assign values to other person1 variables
  person1.citNo = 1984;
  person1. salary = 2500;

  // print struct variables
  printf("Name: %s\n", person1.name);
  printf("Citizenship No.: %d\n", person1.citNo);
  printf("Salary: %.2f", person1.salary);

  return 0;
}

Ausgabe

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

In diesem Programm haben wir einen struct erstellt mit dem Namen Person . Wir haben auch eine Variable von Person erstellt namens person1 .

Unter main() haben wir den in Person definierten Variablen Werte zugewiesen für die person1 Objekt.

strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1. salary = 2500;

Beachten Sie, dass wir strcpy() verwendet haben Funktion, um person1.name den Wert zuzuweisen .

Das liegt daran, dass name ist ein char Array (C-String) und wir können den Zuweisungsoperator = nicht verwenden damit, nachdem wir den String deklariert haben.

Schließlich haben wir die Daten von person1 gedruckt .


Schlüsselwort typedef

Wir verwenden den typedef -Schlüsselwort, um einen Aliasnamen für Datentypen zu erstellen. Es wird häufig mit Strukturen verwendet, um die Syntax zum Deklarieren von Variablen zu vereinfachen.

Sehen wir uns zum Beispiel den folgenden Code an:

struct Distance{
  int feet;
  float inch;
};

int main() {
  struct Distance d1, d2;
}

Wir können typedef verwenden um einen äquivalenten Code mit einer vereinfachten Syntax zu schreiben:

typedef struct Distance {
  int feet;
  float inch;
} distances;

int main() {
  distances d1, d2;
}

Beispiel 2:C++-Typedef

#include <stdio.h>
#include <string.h>

// struct with typedef person
typedef struct Person {
  char name[50];
  int citNo;
  float salary;
} person;

int main() {

  // create  Person variable
  person p1;

  // assign value to name of p1
  strcpy(p1.name, "George Orwell");

  // assign values to other p1 variables
  p1.citNo = 1984;
  p1. salary = 2500;

  // print struct variables
  printf("Name: %s\n", p1.name);
  printf("Citizenship No.: %d\n", p1.citNo);
  printf("Salary: %.2f", p1.salary);

  return 0;
}

Ausgabe

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

Hier haben wir typedef verwendet mit dem Person -Struktur zum Erstellen eines Alias ​​person .

// struct with typedef person
typedef struct Person {
  // code
} person;

Jetzt können wir einfach einen Person deklarieren Variable mit dem person Pseudonym:

// equivalent to struct Person p1
person p1;

Verschachtelte Strukturen

In der C-Programmierung können Sie Strukturen innerhalb einer Struktur erstellen. Zum Beispiel

struct complex {
  int imag;
  float real;
};

struct number {
  struct complex comp;
  int integers;
} num1, num2;

Angenommen, Sie möchten imag festlegen von num2 Variable auf 11 . So geht's:

num2.comp.imag = 11;

Beispiel 3:Verschachtelte C++-Strukturen

#include <stdio.h>

struct complex {
  int imag;
  float real;
};

struct number {
  struct complex comp;
  int integer;
} num1;

int main() {

  // initialize complex variables
  num1.comp.imag = 11;
  num1.comp.real = 5.25;

  // initialize number variable
  num1.integer = 6;
	
  // print struct variables
  printf("Imaginary Part: %d\n", num1.comp.imag);
  printf("Real Part: %.2f\n", num1.comp.real);
  printf("Integer: %d", num1.integer);

  return 0;
}

Ausgabe

Imaginary Part: 11
Real Part: 5.25
Integer: 6

Warum Strukturen in C?

Angenommen, Sie möchten Informationen über eine Person speichern:ihren Namen, ihre Staatsbürgerschaftsnummer und ihr Gehalt. Sie können verschiedene Variablen name erstellen , citNo und Gehalt um diese Informationen zu speichern.

Was ist, wenn Sie Informationen von mehr als einer Person speichern müssen? Jetzt müssen Sie für jede Information pro Person verschiedene Variablen erstellen:name1 , citNo1 , Gehalt1 , name2 , citNo2 , Gehalt2 usw.

Ein besserer Ansatz wäre eine Sammlung aller zugehörigen Informationen unter einem einzigen Namen Person strukturieren und für jeden nutzen.


Mehr über Strukturen


C Sprache

  1. C# Hello World – Ihr erstes C#-Programm
  2. C#-Schlüsselwörter und Bezeichner
  3. C#-Variablen und (primitive) Datentypen
  4. C#-Operatoren
  5. C# Bitwise- und Bit-Shift-Operatoren
  6. C# Grundlegende Ein- und Ausgabe
  7. C#-Ausdrücke, -Anweisungen und -Blöcke (mit Beispielen)
  8. C#-Kommentare
  9. C#-switch-Anweisung
  10. C# ternärer (? :) Operator