Struct Tanımlama
Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 39 / 63.
Artık bir struct öğesinin ne olduğunu anladığınıza göre, kendi yapı türlerinizi nasıl oluşturacağınızı öğrenmenin zamanı geldi. C dilinde bir struct bildirmek, özel veri türünüzün taslağını tanımlayan belirli bir söz dizimini izler.
Bir struct bildirmek için temel sözdizimi şöyledir:
struct StructureName {
datatype member1;
datatype member2;
// ... daha fazla üye
};Her bir bölümün nasıl çalıştığı şöyle: struct anahtar sözcüğüyle başlarsın; ardından yapın için bir ad gelir ve sonra tüm üye değişkenleri süslü parantezlerin içinde listelersin. Her üye, veri türü ve adıyla tıpkı normal bir değişken gibi tanımlanır. Kapanış parantezinden sonra noktalı virgülü unutma!
Örneğin, 2B uzayda bir noktayı temsil eden bir yapı oluşturmak için:
struct Point {
int x;
int y;
};Bu bildirim, struct Point adlı ve iki tamsayı üyesi içeren yeni bir veri türü oluşturur: x ve y. Bildirildikten sonra bu yapı türü, koordinat bilgilerini düzenli bir şekilde tutan değişkenler oluşturmak için programınızın her yerinde kullanılabilir.
Görev
KolayBir kütüphane sistemindeki kitabı temsil etmek için struct tanımlayan bir C programı oluştur. Programın şunları yapması gerekir:
- Aşağıdaki üyeleri içeren
structadlı birBooktanımla:- Kitabın kimlik numarasını saklamak için bir tamsayı
id - Kitabın başlığını saklamak için, boyutu 50 olan bir karakter dizisi
title - Sayfa sayısını saklamak için bir tamsayı
pages - Kitabın fiyatını saklamak için bir kayan noktalı sayı
price
- Kitabın kimlik numarasını saklamak için bir tamsayı
- Struct tanımlandıktan sonra bir doğrulama mesajı yazdır:
Book struct defined successfully! Bookkullanaraksizeof()struct'ının boyutunu bayt cinsinden şu biçimde yazdır:Size of Book struct: [size] bytes- Her üyenin boyutunu ayrı ayrı yazdır:
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
Bu alıştırma, struct anahtar sözcüğünün doğru kullanımı, uygun veri türleriyle üye tanımlamaları ve kapanış küme ayracından sonraki noktalı virgül de dâhil olmak üzere struct bildirim söz dizimi anlayışını sınar. Ayrıca C'nin sizeof() operatörünü kullanarak struct üyeleri için belleği nasıl ayırdığını da keşfedeceksin.
Kesin boyut değerlerinin sisteminin mimarisine bağlı olarak değişebileceğini, ancak programın başarılı bir şekilde derlenip çalışması için struct tanımı söz diziminin doğru olması gerektiğini unutma.
Kendin dene
#include <stdio.h>
int main() {
// TODO: Book struct'ınızı burada tanımlayın
// Onay mesajını yazdır
printf("Book struct defined successfully!\n");
// TODO: Book struct'ının ve üyelerinin boyutunu yazdır
return 0;
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma7Yapılar (structs)
Struct Nedir?Struct TanımlamaStruct Değişkenleri OluşturmaStruct Üyelerine ErişmeStruct BaşlatmaÖzet: Öğrenci Verisi Struct'ı2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String FonksiyonlarıKendi başına pratik yap: Online C derleyicisi