Menu
Coddy logo textTech

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.memberName

Point 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.

challenge icon

Görev

Kolay

Nokta 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:

  1. Aşağıdaki üyelere sahip struct adlı bir Car tanı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
  2. Car adlı bir myCar değişkeni oluşturun
  3. 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.year değişkenine atayın
    • Marka için bir dize okuyun ve bunu myCar.brand değişkenine atayın
    • Kilometre için bir tamsayı okuyun ve bunu myCar.mileage değişkenine atayın
    • Fiyat için bir kayan noktalı sayı okuyun ve bunu myCar.price değişkenine atayın
  4. Tüm değerleri okuduktan sonra aşağıdaki işlemleri gerçekleştirin:
    • myCar.mileage += 1000; kullanarak kilometreyi 1000 artırın
    • myCar.price -= 500.0; kullanarak fiyatı 500.0 azaltın
  5. 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.50

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;
}
quiz iconKendini test et

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

Kendi başına pratik yap: Online C derleyicisi