C struktúra (struktúrák)

Ebben az oktatóanyagban megismerheti a C programozás struktúra típusait. Megtanulja a struktúrák meghatározását és használatát példák segítségével.

A C programozásban a struktúra (vagy struktúra) változók (különböző típusú lehet) gyűjteménye egyetlen név alatt.

Hogyan lehet definiálni a struktúrákat?

A struktúraváltozók létrehozása előtt meg kell határoznia annak adattípusát. A struktúra meghatározásához a structkulcsszót kell használni.

A struktúra szintaxisa

 struct structureName (dataType tag1; dataType tag2;…); 

Íme egy példa:

 struct Személy (char név (50); int citNo; úszó fizetés;); 

Itt egy származtatott típust struct Personhatározunk meg. Most létrehozhat ilyen típusú változókat.

Hozzon létre struktúraváltozókat

Struktumtípus deklarálásakor nincs tárhely vagy memória. Egy adott struktúratípus memóriájának kiosztásához és a vele való munkához változókat kell létrehoznunk.

Így hozhatunk létre struktúraváltozókat:

struct Személy (char név (50); int citNo; úszó fizetés;); int main () (struct Személy személy1, személy2, p (20); visszatér 0;)

A struktúraváltozó létrehozásának másik módja:

 struct Személy (char név (50); int citNo; úszó fizetés;) person1, person2, p (20); 

Mindkét esetben két person1, person2 és 20 p típusú tömb változó struct Personjön létre.

Hozzáférés tagjai egy struktúrához

Kétféle típusú operátor használható a struktúra tagjainak elérésére.

  1. . - Tag üzemeltető
  2. -> - Struktúra mutató operátor (a következő oktatóanyagban tárgyaljuk)

Tegyük fel, hogy el akarja érni a 2. fizetését. Így teheti meg.

 személy2.fizetés

Példa: Adjon hozzá két távolságot

 // Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )

Kimenet

 1. távolság Láb beírása: 12 Enter hüvelyk: 7.9 2. távolság Láb beírása: 2 Enter hüvelyk beírása: 9.8 A távolságok összege = 15'-5.7 "

Kulcsszó typedef

A typedefkulcsszóval álnevet hozunk létre az adattípusok számára. Általában a struktúrákkal használják a változók deklarálásának szintaxisának egyszerűsítésére.

Ez a kód

struct Távolság (int láb; float inch;); int main () (struktúra d1, d2 távolság;)

egyenértékű

typedef struct Távolság (int láb; float inch;) távolságok; int main () (d1, d2 távolságok;)

Beágyazott struktúrák

C programozással létrehozhat struktúrákat egy struktúrán belül. Például,

struct komplex (int imag; float real;); struct szám (struct complex comp; int egész számok;) num1, num2;

Tegyük fel, hogy a num2 változó imag-jét 11-re szeretné állítani. Ezt megteheti:

 szám2.összet.kép = 11; 

Miért építsen C-ben?

Tegyük fel, hogy információkat szeretne tárolni egy személyről: a nevét, az állampolgárság számát és a fizetését. Különböző változók nevét, citNo számát és fizetését hozhatja létre ezen információk tárolására.

Mi van, ha egynél több ember adatait kell tárolnia? Most külön változókat kell létrehoznia az egyes személyekre vonatkozó információkhoz: név1, citNo1, fizetés1, név2, citNo2, fizetés2 stb.

Jobb megközelítés az lenne, ha az összes kapcsolódó információt egyetlen névstruktúra alatt állítanánk össze, Personés minden ember számára felhasználnánk.

További információ a struktúráról

  • Szerkezetek és mutatók
  • Struktúrák átadása egy függvénynek

érdekes cikkek...