LuvyAI — Ücretsiz başla. 18+

🚀 BAŞTAN SONA C DİLİ BÖLÜM-2: Değişkenler, Veri Tipleri ve `scanf` Fonksiyonu 💻

Konu Özeti

C dilinde değişkenler, temel veri tipleri (char, int, float, double), bellek boyutlarını ölçen sizeof operatörü, printf ve scanf için biçim belirleyiciler (%d, %f, %c, %s, %lf) ve kullanıcıdan veri alırken adres operatörü (&) kullanımı anlatılıyor. Ayrıca tip dönüştürme (type casting) ile tam sayı bölmesinden kaynaklanan hataların nasıl giderileceği örneklerle gösteriliyor. Bölüm sonunda operatörler, karar yapıları ve switch-case konularına giriş yapılacağı belirtiliyor.

🚀 BAŞTAN SONA C DİLİ BÖLÜM-2: Değişkenler, Veri Tipleri ve `scanf` Fonksiyonu 💻

Selamlar! Serimizin 2. bölümüne hoş geldiniz.

İlk bölümde C dilinin felsefesini, derleme sürecini (Preprocessor -> Compiler -> Linker) ve ilk programımızı incelemiştik. Bu bölümde ise verileri bellekte saklamamızı sağlayan **Değişkenleri**, C dilinin temel **Veri Tiplerini**, bellek boyutlarını ölçen **`sizeof`** operatörünü, **Biçim Belirleyicileri (Format Specifiers)** ve kullanıcıdan veri almamızı sağlayan **`scanf`** fonksiyonunu öğreneceğiz.

---

📌 1. C Dilinde Temel Veri Tipleri 🧬

C dili **statik tipli (statically typed)** bir dildir. Yani bir değişken tanımlanırken türü açıkça belirtilmeli ve o değişken bellekte o türün kapladığı alan kadar yer tutmalıdır.

### Temel Veri Tipleri Tablosu:

| Veri Tipi | Açıklama | Tipik Boyut | Biçim Belirleyici |
| :--- | :--- | :--- | :--- |
| `char` | Tek bir karakter tutar (ASCII kodu saklar) | 1 Byte | `%c` |
| `int` | Tam sayıları tutar | 4 Byte | `%d` veya `%i` |
| `float` | Tek duyarlıklı ondalıklı sayılar | 4 Byte | `%f` |
| `double` | Çift duyarlıklı (hassas) ondalıklı sayılar | 8 Byte | `%lf` |

> ⚠️ **Not:** C dilinde metinsel ifadeler için yerleşik bir `String` veri tipi **YOKTUR!** Metinler karakter dizileri (`char dizi[]`) şeklinde tutulur.

---

📏 2. Bellek Boyutları ve `sizeof` Operatörü 🔍

Veri tiplerinin bellekte kaç byte yer kapladığı sistem mimarisine (32-bit / 64-bit) göre değişebilir. Bir tipin veya değişkenin kapladığı bellek alanını öğrenmek için `sizeof` operatörü kullanılır.

#include <stdio.h>

int main() {
printf("char boyutu : %lu Byte\n", sizeof(char));
printf("int boyutu : %lu Byte\n", sizeof(int));
printf("float boyutu : %lu Byte\n", sizeof(float));
printf("double boyutu : %lu Byte\n", sizeof(double));

return 0;
}

---

🎯 3. Biçim Belirleyiciler (Format Specifiers) 🎯

C dilinde ekrana veri yazdırırken (`printf`) veya kullanıcıdan veri okurken (`scanf`) değişkenin türünü belirten kaçış kodları kullanılır.

Sık Kullanılan Format Specifiers:
• `%d` / `%i` -> `int` (Tam sayı)
• `%f` -> `float` (Ondalıklı sayı)
• `%.2f` -> Virgülden sonra sadece 2 basamak gösterir
• `%lf` -> `double` (Uzun ondalıklı sayı)
• `%c` -> `char` (Karakter)
• `%s` -> Karakter ***** / Metin (String)

---

📥 4. Kullanıcıdan Veri Alma: `scanf` Fonksiyonu ⌨️

Kullanıcıdan klavye vasıtasıyla veri okumak için `stdio.h` kütüphanesinde yer alan `scanf` fonksiyonu kullanılır.

⚠️ **KRİTİK KURAL:** `scanf` kullanırken değişken adının önüne **Adres Operatörü (`&`)** konulmalıdır! Bu sembol, girilen verinin bellekteki **hangi adrese (pointer)** yazılacağını belirtir.

#include <stdio.h>

int main() {
int yas;
float maas;
char basHarf;

printf("Lutfen yasinizi giriniz: ");
scanf("%d", &yas); // &yas -> yas değişkeninin bellek adresi

printf("Maas beklentinizi giriniz: ");
scanf("%f", &maas);

printf("Isminizin bas harfini giriniz: ");
// Karakter okurken tamponda (buffer) kalan \n karakterini temizlemek için %c önüne boşluk konur
scanf(" %c", &basHarf);

printf("\n--- GIRDILERINIZ ---\n");
printf("Harf : %c\n", basHarf);
printf("Yas : %d\n", yas);
printf("Maas : %.2f TL\n", maas);

return 0;
}

---

🔢 5. Tip Dönüştürme (Type Casting) 🔀

Bir veri tipini geçici olarak başka bir veri tipine dönüştürmek için parantez içinde hedef tip yazılır: `(hedef_tip) degisken`

#include <stdio.h>

int main() {
int sayi1 = 7;
int sayi2 = 2;

// Tam sayı bölmesi sonucu tam sayı verir (7 / 2 = 3)
float yanlisSonuc = sayi1 / sayi2;

// Type casting ile doğru float bölmesi elde edilir (7.0 / 2 = 3.5)
float dogruSonuc = (float)sayi1 / sayi2;

printf("Yanlis Bolme : %.1f\n", yanlisSonuc); // 3.0
printf("Dogru Bolme : %.1f\n", dogruSonuc); // 3.5

return 0;
}

---

📝 Bölüm Özeti ve Gelecek Bölüm 🔮

Bu bölümde temel C veri tiplerini, `sizeof` ile bellek alanlarını, format belirleyicileri, `scanf` ile veri okumadaki `&` adres mantığını ve Type Casting işlemini öğrendik.

👉 **Bölüm 3'te Bizi Ne Bekliyor?**
• Operatörler (Aritmetik, İlişkisel, Mantıksal, Bitsel Operatörler)
• Karar Yapıları: `if`, `else if`, `else`
• Koşul Operatörü / Ternary (`?
:`)
• `switch-case` Yapısı

Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! 💻✨

🔒 Bu içeriği görmek için giriş yapın

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
136,881Threads
3,309,140Messages
328,728Members
Leylaaa1234Latest member
Top Bottom