Menu
Coddy logo textTech

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

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

challenge icon

Görev

Kolay

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

  1. Aşağıdaki üyelere sahip Car adında bir struct tanı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
  2. myCar adında bir Car değişkeni oluşturun
  3. 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
  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 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.50

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

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

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