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.
.
- Lid-operator->
- 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
- C# Hello World - Uw eerste C#-programma
- C#-zoekwoorden en -ID's
- C#-variabelen en (primitieve) gegevenstypen
- C#-operators
- C# Bitsgewijze en Bit Shift-operators
- C# Basisinvoer en -uitvoer
- C#-expressies, statements en blokken (met voorbeelden)
- C# Opmerkingen
- C# switch-instructie
- C# ternair (? :) Operator
- C# break-instructie