Menu
Coddy logo textTech

Tip Dönüşümü Bölüm 1

Coddy'nin C Journey'sinin Fundamentals bölümünün bir parçası — ders 13 / 63.

C'de tür dönüşümü, bir değeri bir veri türünden diğerine dönüştürmenize olanak tanır. Bu, farklı veri türleri arasında işlemler gerçekleştirmeniz gerektiğinde yararlıdır.

İki ana tip dönüştürme türü vardır:

  1. Örtük dönüştürme (otomatik)
  2. Açık dönüştürme (manuel)

Örtük tür dönüşümü ile başlayalım:

Küçük bir veri tipinden daha büyük bir veri tipine dönüştürme yaparken örtük tür dönüşümü otomatik olarak gerçekleşir:

int num = 10;
double decimal_num;

// int'ten double'a örtük tür dönüşümü
decimal_num = num;

Yukarıdaki kod yürütüldükten sonra, decimal_num 10.0 değerine sahip olacaktır

Bu çalışır çünkü bir double, herhangi bir veri kaybetmeden bir int'in tüm olası değerlerini saklayabilir. Dönüşüm güvenlidir, bu nedenle C bunu otomatik olarak yapar.

Yaygın örtük tür dönüşüm yolları:

  • char → int → long → float → double

Şimdi açık tür dönüştürmeye bakalım:

Açık tür dönüştürme (explicit casting), dönüştürmek istediğiniz değerin önüne hedef veri tipini parantez içinde yerleştirerek manuel olarak yapılır. Bu, veri kaybının meydana gelebileceği daha büyük bir veri tipinden daha küçük bir veri tipine dönüştürme yaparken gereklidir:

double decimal_num = 5.65;
int num;

// double'dan int'e açık tür dönüştürme
num = (int)decimal_num;

Yukarıdaki kod yürütüldükten sonra, num 5 değerine sahip olacaktır

double'dan int'e tür dönüşümü yaparken ondalık kısmın (yuvarlanmadan) kesildiğine dikkat edin. Açık tür dönüşümü için sözdizimi şöyledir:

(target_type) value

Bu dönüştürme veri kaybına neden olabileceği için C, bunu açıkça yapmanızı gerektirir — bu, derleyiciye potansiyel veri kaybının farkında olduğunuzu bildirir.

challenge icon

Görev

Kolay

Aşağıdakileri yapan bir program yazın:

  1. Bir double değişkeni result bildiren ve değerini 5.65 olarak ayarlayan
  2. Bir int değişkeni grade bildiren
  3. Açık tür dönüştürme (explicit casting) kullanarak result değerini grade değişkenine atayan
  4. printf kullanarak grade değerini "The grade is: " mesajıyla birlikte yazdıran

Kopya kağıdı

Örtük tür dönüşümü (Implicit casting) — küçük tipten büyük tipe otomatik dönüşüm:

int num = 10;
double decimal_num = num; // 10.0 olur

Yaygın örtük tür dönüşümü yolu: char → int → long → float → double

Açık tür dönüşümü (Explicit casting)(target_type) value kullanarak manuel dönüşüm:

double decimal_num = 5.65;
int num = (int)decimal_num; // 5 olur (yuvarlanmaz, kesilir)

Veri kaybının meydana gelebileceği, büyük bir tipten küçük bir tipe dönüşüm yaparken açık tür dönüşümü kullanın.

Kendin dene

#include <stdio.h>

int main() {
    double result = 5.65;
    int grade;
    
    // result (double) değişkenini grade (int) türüne dönüştürmek için açık tür dönüşümü kullanın
    
    printf("The grade is: %d\n", grade);
    
    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.

Fundamentals bölümündeki tüm dersler