İçindekiler:
- Temelleri
- Bir yapıyı nasıl doldururum
- Bireysel yapı değişkenlerini birbiri ardına oluşturmak, tek tek değişken türlerinden oluşan bir dizi oluşturmak kadar sıkıcı ve zahmetli olur. Çoklu yapılar için çözüm, birden fazla bireysel değişkenle aynıdır: bir dizi.
Video: C Programlama Dersleri 41 - Yapılar (Structures) 2024
Bir de çok değişkenli olarak C programlama dili yapısı düşünebiliriz, veya birkaç değişken bir arada. Karmaşık bilgileri saklamak veya bunlara erişmek için yapıları kullanırsınız. Bu şekilde, çeşitli int, char, float değişkenleri ve hatta dizileri tek bir düzende saklayabilirsiniz.
Temelleri
Yapısı değişken bir tür değildir. Bunun yerine, onu birden çok değişken türü içeren bir çerçeve olarak düşünün. Bir çok yönden, bir yapı bir veritabanındaki bir kaydın benzeridir. Örneğin:
İsim Yaş Kumar borcu
Bu üç ürün, bir veritabanı kayıtlarında alanlar olabilir, ama aynı zamanda bir yapıda üyesi olabilir: Adı bir dize olurdu; Yaş, bir tam sayı; ve İmzasız kayan nokta değeri olan Kumar Borcu. Böyle bir kayıt, C'de bir yapı olarak nasıl görünür:
struct record {char name [32]; yaş; kayan borç;};
yapı, yeni bir yapı tanıtan, tanımlayan veya yaratan bir C dili anahtar kelimedir.
record, oluşturulmakta olan yeni yapının adıdır.
Kıvırcık parantez içinde, yapının üyeleri, adlandırılmış yapının içerdiği değişkenler bulunur. Kayıt yapısı türü üç üye değişken içeriyor: bir dize adı, yaş adında bir yaş ve bir float değeri, borç.
Yapıyı kullanmak için, oluşturduğunuz yapı türünün bir yapı değişkeni bildirmeniz gerekir. Örneğin:
yapı kaydı insan;
Bu satır, kayıt yapısı türünün yeni bir değişkeni bildirir. Yeni değişkene insan adı verilir.
Yapı değişkenleri, yapıyı tanımladığınızda da bildirilebilir. Örneğin:
struct record {char name [32]; yaş; kayan borç;} insan;
Bu ifadeler insan , bir kayıt yapısı değişken bildirmek kayıt yapısını ve tanımlar. Bu yapı türünün birden fazla değişkeni de oluşturulabilir:
struct record {char name [32]; yaş; float borcu;} bill, mary, dan, susie;
Bu örnekte dört kayıt yapısı değişkeni oluşturulmuştur. Her değişken, yapıda tanımlanan üç üyeye erişebilir. Bir yapı değişkeni üyeleri erişmek için, sen üye operatörü bir dönem kullanıyoruz. Yapı değişken adını bir üye adına bağlar. Örneğin:
printf ("Kurban:% sn", fatura adı);
Bu deyim, fatura yapı değişkenindeki ad üyesine başvuruyor. Bir char dizisi, kodunuzda başka herhangi bir char dizisi gibi kullanılabilir. Yapı değişkenindeki diğer üyeler de bireysel meslektaşları gibi kullanılabilir:
dan.yaş = 32;
Bir yapıyı nasıl doldururum
Diğer değişkenlerle olduğu gibi, bir yapı değişkenine oluşturulduğunda değerleri atayabilirsiniz. Önce yapı türünü tanımlamanız ve ardından üye değişkenleri önceden ayarlanmış bir yapı değişkeni bildirmeniz gerekir. Önceden ayarlanmış değerlerin, Yapılandırmada tanımlanan üyelerin sırasına ve türüne uyduğundan emin olun, Baştaki Yapı Yapısı Bildirme'de gösterildiği gibi.
BAŞLANGIÇ YAPININ BELİRLENMESİ
#include int main () {başkan başkanı {char name [40]; int yıl;}; başkan yapacak ilk = {"George Washington", 1789}; printf ("İlk başkan% sn idi", ilk isim); printf ("% dn" de açıldı, ilk yıl); Egzersiz 1
: Başlatılan Yapıyı Bildirmek'ten editöre kaynak kodunu yazarak yeni bir program oluşturun. Kurun ve çalıştırın. Ayrıca bir yapı bildirip bir deyimle başlatabilirsiniz:
struct president {char name [40]; int yıl;} ilk = {"George Washington", 1789};
Egzersiz 2
: Egzersiz 1'den kaynak kodunuzu değiştirin, böylece yapı ve değişken bildirilir ve bir deyim olarak başlatılır. Bir yapı ilan edip bir yapı değişkenini gösterildiği gibi başlatabilirsiniz, ancak bu hile ile yalnızca bir kez kurtulabilirsiniz. Teknik, Başlanan Yapı Yapısı Bildirme bölümünde gösterildiği gibi geleneksel yöntemle yapılması gereken ikinci yapı değişkenini bildirmek için kullanamazsınız.
Alıştırma 3
: İkinci olarak, 1797'de açılan ikinci cumhurbaşkanı John Adams hakkında bilgi vererek bu yapıyı başlatarak kodunuza ikinci bir başkan yapısını ekleyin. Her iki yapının içeriğini görüntüleyin. Bir yapı dizisi nasıl yapılır
Bireysel yapı değişkenlerini birbiri ardına oluşturmak, tek tek değişken türlerinden oluşan bir dizi oluşturmak kadar sıkıcı ve zahmetli olur. Çoklu yapılar için çözüm, birden fazla bireysel değişkenle aynıdır: bir dizi.
Bir yapı dizisi şu şekilde ilan edilir:
struct skorlar player [4];
Bu deyim, puan dizileri dizisini bildirir. Dizi, oyuncu olarak adlandırılır ve öğeleri olarak dört tane yapı değişkeni içerir.
Dizideki yapılara, dizi ve yapı gösterimi kombinasyonu kullanılarak erişilir. Örneğin:
oyuncu [2]. ad
Önceki satırdaki değişken, oyuncu yapısı dizisindeki üçüncü unsurdaki ad üyesine erişir. Evet, bu üçüncü öğedir, çünkü ilk öğe şu şekilde referanslandırılacaktır:
player [0]. ad
Diziler, 1. unsur değil, 0 unsuru ile numaralandırmayı başlatır.
Yapıların Dizilerindeki 10. satır, dört puanın yapı dizisini bildirir. Dizinin adı player'tır. Dizilerdeki her yapı, 13 ile 19 arasındaki satırları dolduruyor. 21 - 27 satırları her yapının üye değerlerini görüntüler.
YAPISALARIN ARRAYLARI
#include int main () {skoru yapılandırma {char name [32]; int puan;}; yapı puanı oyuncu [4]; int x; (x = 0; x <4; x ++) için {printf ("Oyuncu% d girin:", x + 1); scanf ("% s", oyuncu [x].ad); printf ("Puanını girin"; scanf ("% d", & player [x]. skor);} koyar ("Oyuncu Bilgileri"); printf ("# tNametScoren"); (x = 0; x <4; x ++) {printf ("% dt% st% 5dn", x + 1, oyuncu [x], isim, oyuncunun [x] puanı);} dönüş (0);}
Alıştırma 4
: Arrays of Structures'taki kaynak kodunu editörünüze yazın. Programı kurun ve çalıştırın. Puanlar düzgün hizalanacak şekilde beş basamondan az tutmaya çalışın. Alıştırma 5
: Yapıların Dizilişine kod ekleyin, böylece yapıların gösterimi önce en yüksek skorla listelenir. Evet, bunu yapabilirsin. Bir yapı dizisini sıralama, tıpkı diğer dizileri sıralamak gibi çalışır. İşte bir ipucu: Çözümün 27 satırı buna benzer:
player [a] = player [b];
Yapı dizisi öğelerini, herhangi bir dizi öğesini değiştirebileceğiniz gibi takas edebilirsiniz. Yapı değişkeninin üyelerini değiştirmeniz gerekmez.