Struct Üyelerine Erişme
Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 41 / 63.
Artık struct değişkenleri oluşturabildiğine göre, bunların içinde depolanan verilerle nasıl çalışacağını öğrenmen gerekiyor. Nokta operatörü (.), bir struct değişkeninin tek tek üyelerine erişmenin ve bunları değiştirmenin anahtarıdır.
Yapı üyelerine erişim söz dizimi basittir:
structVariable.memberNamePoint yapı örneğimizi kullanarak üyelerini hem okuyabilir hem de yazabilirsiniz:
struct Point p1;
// Struct üyelerine yazma
p1.x = 10;
p1.y = 20;
// Struct üyelerinden okuma
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);Nokta operatörü, diğer herhangi bir değişkene erişmekle tamamen aynı şekilde çalışır; bunu atamalarda, aritmetik işlemlerde, işlev çağrılarında veya bu türden normal bir değişkeni kullanacağınız herhangi bir yerde kullanabilirsiniz. Her üye, bildirilen türde bağımsız bir değişken gibi davranır ve yapının verilerini düzenli ve sezgisel bir şekilde değiştirmenize olanak tanır.
Görev
KolayNokta operatörünü kullanarak struct üyelerine erişmeyi ve bu üyeleri değiştirmeyi gösteren bir C programı oluşturun. Programınız şunları yapmalıdır:
- Aşağıdaki üyelere sahip
structadlı birCartanımlayın:- Üretim yılını saklamak için bir tamsayı
year - Araba markasını saklamak için boyutu 20 olan bir karakter dizisi
brand - Mevcut kilometreyi saklamak için bir tamsayı
mileage - Arabanın fiyatını saklamak için bir kayan noktalı sayı
price
- Üretim yılını saklamak için bir tamsayı
Caradlı birmyCardeğişkeni oluşturun- Aşağıdaki giriş değerlerini okuyun ve nokta operatörünü kullanarak struct üyelerine atayın:
- Yıl için bir tamsayı okuyun ve bunu
myCar.yeardeğişkenine atayın - Marka için bir dize okuyun ve bunu
myCar.branddeğişkenine atayın - Kilometre için bir tamsayı okuyun ve bunu
myCar.mileagedeğişkenine atayın - Fiyat için bir kayan noktalı sayı okuyun ve bunu
myCar.pricedeğişkenine atayın
- Yıl için bir tamsayı okuyun ve bunu
- Tüm değerleri okuduktan sonra aşağıdaki işlemleri gerçekleştirin:
myCar.mileage += 1000;kullanarak kilometreyi 1000 artırınmyCar.price -= 500.0;kullanarak fiyatı 500.0 azaltın
- Her üyeye erişmek için nokta operatörünü kullanarak araba bilgilerini tam olarak şu biçimde yazdırın:
Car Details:Year: [year]Brand: [brand]Mileage: [mileage]Price: [price]
Bu görev, struct üyelerinden hem veri okuma hem de bu üyelere veri yazma işlemlerinde nokta operatörünü anladığınızı sınar. Struct üyelerine değer atamayı, bu üyeler üzerinde aritmetik işlemler gerçekleştirmeyi ve çıktı için bu üyelere erişmeyi uygulayacaksınız.
Örneğin, girdi şu şekildeyse:
2020
Toyota
50000
25000.50Çıktınız şu şekilde olmalıdır:
Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50Kendin dene
#include <stdio.h>
#include <string.h>
// TODO: Car yapısını (struct) burada tanımlayın
int main() {
// TODO: myCar adında bir Car değişkeni oluşturun
// Giriş değerlerini oku
int year;
char brand[20];
int mileage;
float price;
scanf("%d", &year);
scanf("%s", brand);
scanf("%d", &mileage);
scanf("%f", &price);
// TODO: Nokta operatörünü kullanarak giriş değerlerini yapı üyelerine atayın
// TODO: Kilometre (mileage) ve fiyatı (price) belirtildiği şekilde değiştirin
// TODO: Nokta operatörünü kullanarak araç detaylarını yazdırın
printf("Car Details:\n");
// Burada Yıl, Marka, Kilometre ve Fiyatı yazdırın
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