Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C-structuur

C-struct

In deze tutorial leer je aan de hand van voorbeelden over structtypen in C Programming.

In C-programmering is een struct (of structuur) een verzameling variabelen (kan van verschillende typen zijn) onder een enkele naam.


Definieer structuren

Voordat u structuurvariabelen kunt maken, moet u het gegevenstype definiëren. Om een ​​struct te definiëren, gebruikt de struct zoekwoord wordt gebruikt.

Syntaxis van struct

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

Bijvoorbeeld,

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

Hier een afgeleid type struct Person is gedefinieerd. Nu kunt u variabelen van dit type maken.


Structvariabelen maken

Wanneer een struct type is gedeclareerd, wordt er geen opslag of geheugen toegewezen. Om geheugen van een bepaald structuurtype toe te wijzen en ermee te werken, moeten we variabelen maken.

Zo maken we structuurvariabelen:

struct Person {
  // code
};

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

Een andere manier om een ​​struct . te maken variabele is:

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

In beide gevallen,

  • persoon1 en persoon2 zijn struct Person variabelen
  • p[] is een struct Person array van maat 20.

Toegang tot leden van een structuur

Er zijn twee soorten operators die worden gebruikt voor toegang tot leden van een structuur.

  1. . - Lid-operator
  2. -> - Structuuraanwijzer-operator (wordt besproken in de volgende tutorial)

Stel dat u toegang wilt tot het salaris van persoon2 . Hier leest u hoe u het kunt doen.

person2.salary

Voorbeeld 1:C++ structs

#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;
}

Uitvoer

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

In dit programma hebben we een struct . gemaakt genaamd Person . We hebben ook een variabele gemaakt van Person met de naam persoon1 .

In main() , we hebben waarden toegekend aan de variabelen gedefinieerd in Person voor de persoon1 voorwerp.

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

Merk op dat we strcpy() . hebben gebruikt functie om de waarde toe te wijzen aan person1.name .

Dit komt omdat naam is een char array (C-string) en we kunnen de toewijzingsoperator = niet gebruiken ermee nadat we de string hebben gedeclareerd.

Ten slotte hebben we de gegevens van person1 . afgedrukt .


Zoekwoord typedef

We gebruiken de typedef trefwoord om een ​​aliasnaam voor gegevenstypen te maken. Het wordt vaak gebruikt met structuren om de syntaxis van het declareren van variabelen te vereenvoudigen.

Laten we bijvoorbeeld naar de volgende code kijken:

struct Distance{
  int feet;
  float inch;
};

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

We kunnen typedef . gebruiken om een ​​equivalente code te schrijven met een vereenvoudigde syntaxis:

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

int main() {
  distances d1, d2;
}

Voorbeeld 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;
}

Uitvoer

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

Hier hebben we typedef . gebruikt met de Person structuur om een ​​alias te maken person .

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

Nu kunnen we eenvoudig een Person . declareren variabele met behulp van de person alias:

// equivalent to struct Person p1
person p1;

Geneste structuren

U kunt structuren maken binnen een structuur in C-programmering. Bijvoorbeeld,

struct complex {
  int imag;
  float real;
};

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

Stel dat u imag . wilt instellen van num2 variabel tot 11 . Hier is hoe je het kunt doen:

num2.comp.imag = 11;

Voorbeeld 3:C++ geneste structuren

#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;
}

Uitvoer

Imaginary Part: 11
Real Part: 5.25
Integer: 6

Waarom structeert in C?

Stel dat u informatie over een persoon wilt opslaan:zijn/haar naam, burgerschapsnummer en salaris. U kunt verschillende variabelen maken naam , citNee en salaris om deze informatie op te slaan.

Wat als u informatie van meer dan één persoon moet opslaan? Nu moet je voor elke informatie per persoon verschillende variabelen aanmaken:name1 , citNo1 , salaris1 , naam2 , citNo2 , salaris2 , enz.

Een betere benadering zou zijn om een ​​verzameling van alle gerelateerde informatie te hebben onder één naam Person structuur en gebruik het voor elke persoon.


Meer over struct

  • Structuren en aanwijzingen
  • Structuren doorgeven aan een functie

C Taal

  1. C# Hello World - Uw eerste C#-programma
  2. C#-zoekwoorden en -ID's
  3. C#-variabelen en (primitieve) gegevenstypen
  4. C#-operators
  5. C# Bitsgewijze en Bit Shift-operators
  6. C# Basisinvoer en -uitvoer
  7. C#-expressies, statements en blokken (met voorbeelden)
  8. C# Opmerkingen
  9. C# switch-instructie
  10. C# ternair (? :) Operator
  11. C# break-instructie