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

C-Strukturen und Zeiger

C-Strukturen und Zeiger

In diesem Lernprogramm lernen Sie, Zeiger zu verwenden, um auf Mitglieder von Strukturen in der C-Programmierung zuzugreifen. Sie werden auch lernen, Speicher von Strukturtypen dynamisch zuzuweisen.

Bevor Sie erfahren, wie Zeiger mit Strukturen verwendet werden können, sollten Sie unbedingt diese Tutorials lesen:


C-Zeiger auf Struktur

So können Sie Zeiger auf Strukturen erstellen.

struct name {
    member1;
    member2;
    .
    .
};

int main()
{
    struct name *ptr, Harry;
}

Hier, ptr ist ein Zeiger auf struct .


Beispiel:Mit Pointer auf Mitglieder zugreifen

Um mit Zeigern auf Mitglieder einer Struktur zuzugreifen, verwenden wir den -> Betreiber.

#include <stdio.h>
struct person
{
   int age;
   float weight;
};

int main()
{
    struct person *personPtr, person1;
    personPtr = &person1;   

    printf("Enter age: ");
    scanf("%d", &personPtr->age);

    printf("Enter weight: ");
    scanf("%f", &personPtr->weight);

    printf("Displaying:\n");
    printf("Age: %d\n", personPtr->age);
    printf("weight: %f", personPtr->weight);

    return 0;
}

In diesem Beispiel die Adresse von person1 wird im personPtr gespeichert Zeiger mit personPtr = &person1; .

Jetzt können Sie auf die Mitglieder von person1 zugreifen mit dem personPtr Zeiger.

Übrigens,


Dynamische Speicherzuweisung von Strukturen

Bevor Sie mit diesem Abschnitt fortfahren, empfehlen wir Ihnen, die dynamische Speicherzuweisung von C zu überprüfen.

Manchmal reicht die Anzahl der deklarierten Strukturvariablen möglicherweise nicht aus. Möglicherweise müssen Sie während der Laufzeit Speicher zuweisen. So können Sie dies in der C-Programmierung erreichen.

Beispiel:Dynamische Speicherzuweisung von Strukturen

#include <stdio.h>
#include <stdlib.h>
struct person {
   int age;
   float weight;
   char name[30];
};

int main()
{
   struct person *ptr;
   int i, n;

   printf("Enter the number of persons: ");
   scanf("%d", &n);

   // allocating memory for n numbers of struct person
   ptr = (struct person*) malloc(n * sizeof(struct person));

   for(i = 0; i < n; ++i)
   {
       printf("Enter first name and age respectively: ");

       // To access members of 1st struct person,
       // ptr->name and ptr->age is used

       // To access members of 2nd struct person,
       // (ptr+1)->name and (ptr+1)->age is used
       scanf("%s %d", (ptr+i)->name, &(ptr+i)->age);
   }

   printf("Displaying Information:\n");
   for(i = 0; i < n; ++i)
       printf("Name: %s\tAge: %d\n", (ptr+i)->name, (ptr+i)->age);

   return 0;
}

Wenn Sie das Programm ausführen, lautet die Ausgabe:

Enter the number of persons:  2
Enter first name and age respectively:  Harry 24
Enter first name and age respectively:  Gary 32
Displaying Information:
Name: Harry	Age: 24
Name: Gary	Age: 32

Im obigen Beispiel n Anzahl von Struct-Variablen werden erstellt, wobei n wird vom Benutzer eingegeben.

Um den Speicher für n zuzuweisen Anzahl der struct person , wir verwendeten,

ptr = (struct person*) malloc(n * sizeof(struct person));

Dann haben wir den ptr verwendet Zeiger auf Zugriffselemente von person .


C Sprache

  1. C#-Schlüsselwörter und Bezeichner
  2. C#-Klasse und -Objekt
  3. Abstrakte C#-Klasse und -Methode
  4. C# Teilklasse und Teilmethode
  5. Versiegelte C#-Klasse und -Methode
  6. C#-Struktur
  7. C Schlüsselwörter und Bezeichner
  8. C-Zeiger
  9. Beziehung zwischen Arrays und Zeigern
  10. C Übergeben Sie Adressen und Zeiger