Struct Üyelerine Erişme
Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 41 / 63.
Artık struct değişkenleri oluşturabildiğinize göre, içlerinde saklanan verilerle nasıl çalışacağınızı öğrenmeniz gerekiyor. Nokta operatörü (.), bir struct değişkeninin bireysel üyelerine erişmek ve bunları değiştirmek için anahtarınızdır.
Struct üyelerine erişim sözdizimi oldukça basittir:
structVariable.memberNamePoint struct örneğimizi kullanarak, üyelerini hem okuyabilir hem de onlara 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ü, tıpkı diğer herhangi bir değişkene erişmek gibi çalışır - onu atamalarda, aritmetik işlemlerde, fonksiyon çağrılarında veya o türdeki normal bir değişkeni kullanacağınız her yerde kullanabilirsiniz. Her bir üye, bildirilen türünde bağımsız bir değişken gibi davranarak struct verilerini düzenli ve sezgisel bir şekilde işlemenize olanak tanır.
Görev
KolayNokta operatörünü kullanarak struct üyelerine erişmeyi ve bunları değiştirmeyi gösteren bir C programı oluşturun. Programınız şunları yapmalıdır:
- Aşağıdaki üyelere sahip
Caradında birstructtanımlayın:- Üretim yılını saklamak için bir tam sayı
year - Araba markasını saklamak için 20 boyutunda bir karakter dizisi
brand - Mevcut kilometreyi saklamak için bir tam sayı
mileage - Arabanın fiyatını saklamak için bir float
price
- Üretim yılını saklamak için bir tam sayı
myCaradında birCardeğişkeni oluşturun- Aşağıdaki giriş değerlerini okuyun ve nokta operatörünü kullanarak bunları struct üyelerine atayın:
- Yıl için bir tam sayı okuyun ve bunu
myCar.yearüyesine atayın - Marka için bir dize okuyun ve bunu
myCar.brandüyesine atayın - Kilometre için bir tam sayı okuyun ve bunu
myCar.mileageüyesine atayın - Fiyat için bir float okuyun ve bunu
myCar.priceüyesine atayın
- Yıl için bir tam sayı 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 bir üyeye erişmek için nokta operatörünü kullanarak araba bilgilerini tam olarak şu formatta yazdırın:
Car Details:Year: [year]Brand: [brand]Mileage: [mileage]Price: [price]
Bu görev, struct üyelerinden hem okuma hem de onlara yazma için nokta operatörünü anlama düzeyinizi test eder. Struct üyelerine değer atama, üzerlerinde aritmetik işlemler yapma ve çıktı için onlara erişme pratiği yapacaksınız.
Örneğin, giriş ş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.50Kopya kağıdı
Nokta operatörü (.), bir struct değişkeninin bireysel üyelerine erişmek ve bunları değiştirmek için kullanılır.
Struct üyelerine erişim sözdizimi:
structVariable.memberNameStruct üyelerinden okuma ve üyelere yazma örneği:
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ü; atamalarda, aritmetik işlemlerde, fonksiyon çağrılarında veya o türdeki normal bir değişkeni kullanacağınız her yerde kullanılabilir. Her bir üye, bildirilen türünde bağımsız bir değişken gibi davranır.
Kendin 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.
Logic & Flow 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ı