C yapısı (Yapılar)

Bu öğreticide, C Programlamadaki yapı türleri hakkında bilgi edineceksiniz. Örnekler yardımıyla yapıları tanımlamayı ve kullanmayı öğreneceksiniz.

C programlamasında, bir yapı (veya yapı), tek bir ad altında bir değişkenler koleksiyonudur (farklı türlerde olabilir).

Yapılar nasıl tanımlanır?

Yapı değişkenleri oluşturmadan önce, veri tipini tanımlamanız gerekir. Bir yapı tanımlamak için structanahtar kelime kullanılır.

Yapı sözdizimi

 struct yapıAdı (veri türü üye1; veri türü üye2;…); 

İşte bir örnek:

 struct Person (karakter adı (50); int citNo; float maaş;); 

Burada türetilmiş bir tür struct Persontanımlanır. Şimdi, bu türden değişkenler oluşturabilirsiniz.

Yapı değişkenleri oluşturun

Bir yapı türü bildirildiğinde, depolama veya bellek ayrılmaz. Belirli bir yapı türünün belleğini ayırmak ve onunla çalışmak için değişkenler oluşturmamız gerekir.

Yapı değişkenlerini şu şekilde oluşturuyoruz:

struct Person (karakter adı (50); int citNo; float maaş;); int main () (struct Kişi kişi1, kişi2, p (20); dönüş 0;)

Yapı değişkeni oluşturmanın başka bir yolu şudur:

 struct Kişi (karakter adı (50); int citNo; float maaş;) kişi1, kişi2, p (20); 

Her iki durumda da, iki değişken person1, person2 ve 20 tip elemanlı bir dizi değişkeni p struct Personoluşturulur.

Bir yapının üyelerine erişme

Bir yapının üyelerine erişmek için kullanılan iki tür operatör vardır.

  1. . - Üye operatörü
  2. -> - Yapı işaretçisi operatörü (bir sonraki derste tartışılacaktır)

Farz edin ki, person2 maaşına erişmek istiyorsunuz. İşte bunu nasıl yapabileceğiniz.

 person2.salary

Örnek: İki mesafe ekleyin

 // 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; )

Çıktı

 1. mesafe Ayağı girin: 12 İnç girin: 7.9 2. mesafe Ayak girin: 2 İnç girin: 9.8 Mesafe toplamı = 15'-5.7 "

Keyword typedef

typedefVeri türleri için bir takma ad oluşturmak için anahtar kelimeyi kullanırız. Değişkenleri bildirmenin sözdizimini basitleştirmek için genellikle yapılarla birlikte kullanılır.

Bu kod

struct Mesafe (int fit; float inç;); int main () (struct Mesafe d1, d2;)

eşdeğerdir

typedef struct Mesafe (int fit; float inç;) mesafeler; int main () (d1, d2 mesafeleri;)

İç içe Yapılar

C programlamada bir yapı içinde yapılar oluşturabilirsiniz. Örneğin,

struct complex (int imag; float real;); yapı numarası (yapı karmaşık bileşimi; int tamsayılar;) num1, num2;

Diyelim ki num2 değişkeninin imajını 11'e ayarlamak istiyorsunuz. Bunu şu şekilde yapabilirsiniz:

 num2.comp.imag = 11; 

Neden C yapıları?

Bir kişi hakkındaki bilgileri saklamak istediğinizi varsayalım: adı, vatandaşlık numarası ve maaşı. Bu bilgileri saklamak için farklı değişken adı, citNo ve maaş oluşturabilirsiniz.

Birden fazla kişinin bilgilerini saklamanız gerekirse ne olur? Şimdi, kişi başına her bilgi için farklı değişkenler oluşturmanız gerekir: ad1, citNo1, salary1, ad2, citNo2, salary2, vb.

Daha iyi bir yaklaşım, tüm ilgili bilgilerin tek bir isim Personyapısı altında toplanması ve her kişi için kullanılması olacaktır.

Struct hakkında daha fazla bilgi

  • Yapılar ve işaretçiler
  • Yapıları bir işleve geçirme

Ilginç makaleler...