C'deki yapılar

Structures C



C'de yapı, bir değişkenler koleksiyonunu tek bir varlık altında depolamak için kullanılan kullanıcı tanımlı bir değişkendir. C'deki yapıların uygulamasını ve kullanışlılığını açıklamak için basit bir benzetme kullanalım.

Belirli bir hizmeti kullanan kullanıcılar hakkında bilgi depolamak istediğimizi varsayalım. Bu tür bilgiler, kullanıcı adı, e-posta, adres, hizmet modu ve benzerlerini içerebilir. Bu tür bilgileri depolamak için her özniteliği bağımsız bir değişken olarak oluşturmaya başlayabiliriz. Bununla birlikte, on artı kullanıcımız olduğunda, kod kontrolden çıkabilir ve okunması çok zor ve yorucu hale gelebilir.







Bunu çözmek için bir yapı oluşturabiliriz. Yapının içinde, tüm kullanıcılar tarafından paylaşılan tüm özellikleri saklayabilir ve ardından her kullanıcı için benzersiz değişkenler ekleyebiliriz.



Bunun nasıl uygulanacağını görmek için çeşitli örneklere bir göz atalım.



C'de Yapı Nasıl Tanımlanır

C'de bir yapı tanımlamak için struct anahtar sözcüğünü ve ardından yapının adını kullanırız. İsimden sonra, üyeleri eklediğimiz bir çift kaşlı ayraç var.





Aşağıdaki sözdizimini göz önünde bulundurun:

yapıyapı_adı
{
/* veri */
üye_adı yazın;
üye_adı2 yazın;
üye_adı3 yazın;

...
tipüye_adıN;
};

Yapının adı, C programlama dilinin adlandırma kuralına uyduğu sürece istediğiniz herhangi bir şey olabilir.



Kullanıcı analojisinin örnek yapısını şu şekilde uygulayabiliriz:

yapıkullanıcılar
{
karakterKullanıcı adı[yirmi];
karaktere-posta[225];
karakteradres[elli];
intyaş;
bool kayıtlı;
};

Yapı Değişkenleri Nasıl Oluşturulur

Yapı değişkenleri yaratmanın iki ana yolu vardır. Birincisi onları normal değişkenler gibi bildirmek, diğeri ise onları küme parantezleri kullanarak ayarlamaktır.

Aşağıdaki örnek, yapı değişkenlerinin standart C değişkenleri olarak nasıl bildirileceğini gösterir.

yapıkullanıcılar
{
karakterKullanıcı adı[yirmi];
karaktere-posta[225];
karakteradres[elli];
intyaş;
bool kayıtlı;
};

intana(intargc, karakter const *bağımsız değişken[])
{
yapıkullanıcılar kullanıcı1,kullanıcı2,kullanıcı3
dönüş 0;
}

Yapı değişkenleri yaratmanın diğer yöntemi aşağıda gösterildiği gibidir:

yapıkullanıcılar
{
karakterKullanıcı adı[yirmi];
karaktere-posta[225];
karakteradres[elli];
intyaş;
bool kayıtlı;
}kullanıcı1,kullanıcı2,kullanıcı3;

Bu örnekte, bunları yapı bildirimi sırasında oluşturuyoruz.

Yapı Üyesi Başlangıç

Tür için ayrılmış bellek olmadığından, oluşturma sırasında yapı üyelerini başlatamazsınız.

Bir yapının üyelerini başlatmak için, aşağıda gösterildiği gibi küme parantezlerini kullanırsınız:

yapıkullanıcılar
{
karakterKullanıcı adı[yirmi];
karaktere-posta[225];
karakteradres[elli];
intyaş;
bool kayıtlı;
};
intana(intargc, karakter const *bağımsız değişken[])
{
yapıkullanıcılar kullanıcı1= {'Kullanıcı adım', ' [e-posta korumalı]', 35, NS}
dönüş 0;
}

Erişim Yapısı Üyeleri

Bir yapının üyelerine erişmek için, yapı adı, nokta ve üyenin adıyla başlayarak nokta operatörünü kullanırız.

yapıkullanıcılar
{
karakterKullanıcı adı[yirmi];
karaktere-posta[225];
karakteradres[elli];
intyaş;
bool kayıtlı;
};
intana(intargc, karakter const *bağımsız değişken[])
{
yapıkullanıcılar kullanıcı1= {'Kullanıcı adım', ' [e-posta korumalı]', 35, NS}
kullanıcı1.e-posta = ' [e-posta korumalı]'
dönüş 0;
}

Bu örnekte, user1 üyelerine erişiyoruz.

Tür Tanımlı Anahtar Kelime

Veri türleri için bir takma ad oluşturmak için typedef anahtar sözcüğünü kullanırız ve kodu daha okunabilir hale getiririz.

Örneğin:

typedef yapıkullanıcılar
{
karakterKullanıcı adı[yirmi];
karaktere-posta[225];
karakteradres[elli];
intyaş;
bool kayıtlı;
}sen;
intana(intargc, karakter const *bağımsız değişken[])
{
kullanıcı1= {'Kullanıcı adım', ' [e-posta korumalı]', 35, NS}
kullanıcı1.kayıtlı = YANLIŞ
dönüş 0;
}

Yukarıdaki örnekte, kullanıcı yapısı için bir takma ad u oluşturduk. Bu nedenle, her seferinde struct kullanıcılarını çağırmamız gerekmez. u'yu yukarıda tanımlandığı gibi kullanabiliriz.

Yapı İşaretçileri

Ayrıca bir yapıya işaretçiniz de olabilir. Bunu yapmak, -> operatörünü kullanarak üyelere erişmenizi sağlar.

Örneğin:

typedef yapıkullanıcılar
{
karakterKullanıcı adı[yirmi];
karaktere-posta[225];
karakteradres[elli];
intyaş;
bool kayıtlı;
}sen;
intana(intargc, karakter const *bağımsız değişken[])
{
kullanıcı1= {'Kullanıcı adım', ' [e-posta korumalı]', 35, NS}

// başka bir yapıya işaretçi
sen*user_ptr= &kullanıcı1
user_ptr->Kullanıcı adı= 'kullanıcı adı'
dönüş 0;
}

Çözüm

Bu kılavuz, C programlama dilindeki yapılarla çalışmanın temellerini kapsar.

Okuduğunuz için teşekkürler!