https://github.com/acetinkaya/c-programlama-rehberi
C Programlama Dili Rehberi
https://github.com/acetinkaya/c-programlama-rehberi
c cprogramlamadersi cprogramming cprogramming-language
Last synced: about 1 month ago
JSON representation
C Programlama Dili Rehberi
- Host: GitHub
- URL: https://github.com/acetinkaya/c-programlama-rehberi
- Owner: acetinkaya
- License: mit
- Created: 2025-05-04T12:06:36.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-06-12T19:35:25.000Z (4 months ago)
- Last Synced: 2025-06-12T20:57:34.312Z (4 months ago)
- Topics: c, cprogramlamadersi, cprogramming, cprogramming-language
- Language: C
- Homepage: https://www.youtube.com/@danismanliogrenme
- Size: 2.54 MB
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# C Programlama Dili Rehberi - 2025

Bu repo, C programlama dili üzerine hazırlanmış bir rehberdir. Temel konulardan ileri düzey uygulamalara kadar adım adım ilerleyen örneklerle, C programlama dilini öğrenme sürecinizi kolaylaştırmayı amaçlamaktayım.
🎯 Hedef Kitle
* C diline yeni başlayan öğrenciler
* C programlama dilini öğrenmek isteyen herkes
* Gömülü sistem uygulamalarında algoritma geliştirmeyi ve programlamaya ilgi duyan tüm geliştiriciler.
# 📘 Ders Video İçerikleri:
C Programlama Dili Konu Anlatımı - 1 Videosu "Değişkenler ve Veri Tipleri, Operatörler, Karar Yapıları if ve if-else" :> https://youtu.be/uJD-iz-rm0Q
C Programlama Dili Konu Anlatımı - 2 Videosu "Karar Yapıları (if-else, switch-case), Döngüler (for, while, do-while)" :> https://youtu.be/rb-bJ6QTJ0Q
C Programlama Dili Konu Anlatımı - 3 Videosu "Fonksiyonlar, Diziler, C Programlama Dili Kütüphaneleri" :> https://youtu.be/JiQepEhOqw0
C Programlama Dili Konu Anlatımı - 4 Videosu "C Programlama Dilinde Örnekler" :> https://youtu.be/YQOnF7YSk0c
C Programlama Dili Konu Anlatımı - 5 Videosu "C Programlama Dilinde Örnekler" :> https://youtu.be/xrkYyULonas
C Programlama Dili Konu Anlatımı - 6 Videosu "C Programlama Dilinde Örnekler" :> https://youtu.be/wIywm4H-j20
Bilgisayarda Programlama C Dili Soru Çözüm Videosu :> https://youtu.be/KAMBb57Damw
# 📘 Ders İçerikleri:
## 1. C Programlama Diline Genel Bakış
- C Nedir?
-> Yüksek seviyeli, makine diline yakın, hızlı ve verimli bir programlama dilidir.- C Programlama Dili Nerelerde Kullanılır?
-> İşletim sistemleri (Linux, Windows'un çekirdek işlem bölümleri), gömülü sistemler, algoritma geliştirme, donanım sürücüleri.
- Hangi C Derleyicisi Kullanılacaktır?
-> DevC++ Derleyicisinin "Dev-Cpp 5.11 TDM-GCC 4.9.2" versiyonu kullanılarak kodlar çalıştırılacaktır.

DevC++ "Dev-Cpp 5.11 TDM-GCC 4.9.2" sürümünü [SourceForge](https://sourceforge.net/projects/orwelldevcpp/) bağlantısından indirebilirsiniz.

• İlk C Programı:
#include
int main()
{
printf("Merhaba Hayat");
}

## 2. C Programlama Diline Giriş
2.1 Yorum Satırları
// Tek satırlık yorum
/*
Çok satırlı
yorum
*/2.2 Değişkenler ve Veri Tipleri (int, float, double, char)
int yas = 25;
float sicaklik = 36.5;
char harf = 'A';
#define PI 3.14
const int GUN_SAYISI = 7;2.3 C dilinde Veri Formatlama Kuralları
C programlama dilinde veri formatlama kuralları, özellikle giriş/çıkış ( printf() ve scanf() ) fonksiyonlarında doğru veri tipinin doğru biçimde işlenmesini sağlamak açısından büyük önem taşır.
1. Doğru Tipte Veri Gösterimi Sağlar
2. Hatalı Çıktı ve Bellek Sorunlarını Önler
3. Derleyiciye Tip Hakkında Bilgi Verir
4. Kullanıcıya Anlamlı Çıktı Sunar
5. Programlama Platformuna Bağımlı Olmadan Standartlaşma Sağlar| Sembol | Anlamı / Görevi | Örnek Kullanım | Açıklama |
| ------ | ------------------------------------- | ----------------------------------- | --------------------------------------------- |
| `\n` | Yeni satıra geçer | `printf("Merhaba\nHayat");` | "Merhaba" ve "Hayat" ayrı satırlarda yazılır. |
| `\t` | Sekme (tab) boşluğu ekler | `printf("Ad:\tAli");` | "Ad:" ve "Ali" arasında sekme boşluğu olur. |
| `\\` | Ters eğik çizgi (`\`) karakteri yazar | `printf("C:\\Program Files\\");` | Çift `\\` ile gerçek `\` karakteri yazılır. |
| `\"` | Çift tırnak işareti yazar | `printf("Ali \"hocam\" dedi.");` | Çıktı: Ali "hocam" dedi. |
| `%d` | Tam sayı (integer) yazdırır | `printf("Yaş: %d", 30);` | `%d` yerine 30 yazılır. |
| `%f` | Ondalıklı sayı (float) yazdırır | `printf("Ortalama: %.2f", 87.456);` | Virgülden sonra 2 basamak gösterilir. |
| `%s` | Metin (string) yazdırır | `printf("Ad: %s", "Ali");` | "Ad: Ali" olarak çıktı verir. |
| `%c` | Tek karakter yazdırır | `printf("Harf: %c", 'A');` | "Harf: A" olarak çıktı verir. |## 3. Operatörler
3.1 Aritmetik Operatörler
int toplam = 5 + 3; // 8
int carpim = 4 * 2; // 83.2 Karşılaştırma Operatörleri
if (a == b) { printf("Esittir\n"); }
3.3 Mantıksal Operatörler
if (a > 0 && b > 0) { printf("Pozitif sayilar\n"); } // Veif (not1 >= 50 || not2 >= 50) { printf("Ders geçildi.\n"); } // Veya
if (!aktif) { printf("Kullanıcı pasif.\n"); } // Değil## 4. Kontrol Yapıları
4.1 Koşullu İfadeler
if (yas > 18)
{
printf("Yetiskin.\n");
}
else
{
printf("Cocuk.\n");
}---
int yas = 20;
int puan = 85;
if (yas >= 18 && puan >= 80)
{
printf("Sınava girmeye uygunsunuz.\n");
}
else
{
printf("Şartları sağlamıyorsunuz.\n");
}---
4.2 switch-case Yapısı
switch(gun)
{
case 1: printf("Pazartesi"); break;
case 2: printf("Sali"); break;
default: printf("Gecersiz gun");
}4.3 Döngüler
4.3.1 for Döngüsü
for(int i=0; i<5; i++)
{
printf("%d\n", i);
}4.3.2 while Döngüsü
int i = 0;
while(i < 5)
{
printf("%d\n", i);
i++;
}4.3.3 do-while Döngüsü
int i = 0;
do
{
printf("%d\n", i);
i++;
} while(i < 5);## 5. Fonksiyonlar
5.1 Fonksiyon Tanımı ve Kullanımı
int topla(int a, int b)
{
return a + b;
}
int main()
{
int sonuc = topla(5, 3);
printf("%d", sonuc);
}## 6. Diziler
6.1 Tek Boyutlu Dizi
int sayilar[5] = {1, 2, 3, 4, 5};
printf("%d", sayilar[2]); // 36.2 Çok Boyutlu Dizi
int matris[2][3] = {{1,2,3}, {4,5,6}};
printf("%d", matris[1][2]); // 6## 7. İşaretçiler - Pointers
int x = 42; // Normal bir tamsayı değişkeni
int *p = &x; // p, x'in adresini tutan gösterici
printf("x değeri : %d\n", x); // 42
printf("&x adresi : %p\n", &x); // Örn. 0x7ffd5c1e5b3c
printf("p adresi : %p\n", p); // Aynı adres → &x
printf("*p değeri : %d\n", *p); // 42## 8. C Programlama Dili Kütüphaneleri
8.1. C Programlama Dilinde Genel Kullanımı Olan Kütüphaneler
| Başlık (header) | Ana İşlev Grubu | Sık Kullanılan Fonksiyonlar* | Kısaca Ne Yapar |
|-------------------|---------------|--------------|----------------------------------------------------|
| `` | Tarih & Zaman | `time`, `localtime`, `gmtime`, `difftime`, `clock`, `strftime` | Unix zaman damgası, yerel/zaman dilimi dönüşümü, süre ölçümü. |
| `` | Girdi / Çıktı | `printf`, `scanf`, `fprintf`, `fgets`, `fgetc`, `fputc`, `fseek`, `rewind` | Dosya ve ekran/klavye akışlarını biçimlendirilmiş olarak yönetir. |
| `` | Yardımcı & Bellek | `malloc`, `calloc`, `realloc`, `free`, `atoi`, `atof`, `strtol`, `rand`, `srand`, `exit`, `system` | Dinamik bellek, sayı–metin dönüşümü, rastgele sayı, proses kontrolü. |
| `` | Karakter Dizileri | `strlen`, `strcpy`, `strncpy`, `strcat`, `strcmp`, `strchr`, `strstr`, `memset`, `memcpy`, `memmove` | C-string işlemleri ve ham bellek kopyalama/doldurma. |
| `` | Matematik | `sqrt`, `pow`, `sin`, `cos`, `tan`, `log`, `exp`, `fabs`, `ceil`, `floor` | Karekök, trigonometrik, logaritmik ve yuvarlama fonksiyonları.8.2. C Programlama Dilinde Özel Kullanımı Olan Kütüphaneler
| Başlık (header) | Ana İşlev Grubu | Sık Kullanılan Fonksiyonlar* | Kısaca Ne Yapar |
|-------------------|--------------------------|------------------------------------------------------------------|----------------------------------------------------------------------------------|
| `` | Karakter Sınıflama | `isalnum`, `isalpha`, `isdigit`, `isspace`, `tolower`, `toupper` | Karakter türünü sınar veya harfi büyük/küçük yapar. |
| `` | Hata Ayıklama | `assert` | Koşul sağlanmazsa çalışma anında mesaj basıp programı sonlandırır. |
| `` | Sinyal İşleme | `signal`, `raise`, `kill` | Çeşitli “sinyal” olaylarını yakalamak veya tetiklemek için (örn. `SIGINT`). |
| `` | Hata Kodları | `errno` (makro), `perror`, `strerror` | Sistem çağrılarında oluşan hataları standart kod/mesaja çevirir. |
| `` | Yerelleştirme | `setlocale`, `localeconv` | Ondalık ayraç, para birimi, alfabetik sıralama vb. kültür ayarlarını yönetir.## 9. C Programlama Dili Örnekleri
9.1. Kullanıcı Girdisinin Doğruluğunu scanf() ile Kontrol Etme
#include
int main()
{
int sayi = 0;
int sonuc = 0;
printf("Bir sayi girin: ");
sonuc = scanf("%d", &sayi);
if (sonuc == 1)
{
printf("Girilen sayi: %d\n", sayi);
}
else
{
printf("Gecersiz karakter girisi yaptiniz.\n");
}
}9.2. Girilen Bir Sayının Tek mi Çift mi Olduğunu Bulma
#include
int main()
{
int sayi;
printf("Bir sayı girin: ");
scanf("%d", &sayi);
if (sayi % 2 == 0)
{
printf("%d çift sayıdır.\n", sayi);
}
else
{
printf("%d tek sayıdır.\n", sayi);
}}
9.3. Girilen Bir Değerin Sayı Olduğu Kontrol Edildikten Sonra Tek mi Çift mi Olduğunu Bulma
#include
int main()
{
int sayi = 0;
int sonuc;
printf("Bir sayı girin: ");
sonuc = scanf("%d", &sayi);
if (sonuc == 1)
{
if (sayi % 2 == 0)
{
printf("%d çift sayıdır.\n", sayi);
}
else
{
printf("%d tek sayıdır.\n", sayi);
}
}
else
{
printf("Geçersiz giriş! Lütfen bir tamsayı giriniz.\n");
}
}9.4. Kullanıcıdan Alınan Sayıları Diziye Aktarma ve Yazdırma
#include
int main()
{
int sayilar[6];
int i;
// Kullanıcıdan 6 sayı alınıyor...
printf("Lutfen 6 adet tamsayı giriniz:\n");
for (i = 0; i < 6; i++)
{
scanf("%d", &sayilar[i]);
}
// Girilen sayıları yazdır
printf("\nGirilen sayilar:\n");
for (i = 0; i < 6; i++)
{
printf("%d ", sayilar[i]);
}
}9.5. Kullanıcıdan Alınan Sayıların Ortalamasını Hesaplama
#include
int main()
{
int sayilar[6];
int i, toplam = 0;
float ortalama;
printf("Lütfen 6 adet tamsayı giriniz:\n");for (i = 0; i < 6; i++)
{
scanf("%d", &sayilar[i]);
toplam += sayilar[i];
}
ortalama = (float)toplam / 6;
printf("\nGirilen sayıların ortalaması: %.2f\n", ortalama);
}9.6. Kullanıcıdan Alınan Sayıların Diziye Atılması ve Tek–Çift Sayıların Adetlerinin Belirlenmesi
#include
int main()
{
int sayilar[6];
int i, tekSayac = 0, ciftSayac = 0;
printf("Lütfen 6 adet tamsayı giriniz:\n");
for (i = 0; i < 6; i++)
{
printf("%d. sayi: ", i + 1);
scanf("%d", &sayilar[i]);
if (sayilar[i] % 2 == 0)
ciftSayac++;
else
tekSayac++;
}
printf("\nGirilen sayılar arasında:\n");
printf("Tek sayı adedi: %d\n", tekSayac);
printf("Çift sayı adedi: %d\n", ciftSayac);
}9.7. Kullanıcının Belirlediği Sayı Adedi ile Girilen Sayı Adedinin Karşılaştırılması (while, for ve if yapıları ile)
#include
int main()
{
int sayilar[6]; // 6 elemanlı dizi
int istenen_adet = 6;
int sayi, i = 0, j = 0;
printf("6 Adet Sayi Giriniz\n");
while (i < istenen_adet)
{
printf("%d. sayi: ", i + 1);
if (scanf("%d", &sayi))
{
sayilar[i] = sayi;
i++;
}
else
{
printf("Gecersiz deger girdiniz! Lütfen tamsayı giriniz.\n");
}
}if(i == istenen_adet)
{
printf("Girilen Değerler İstenenler ile Aynı ");
for (j = 0; j < istenen_adet; j++)
{
printf("%d ", sayilar[j]);
}
}
else
{
printf("Girilen Değerler İstenenler ile Aynı Değil");
}
printf("\nToplam Gecerli Giris Sayisi: %d\n", istenen_adet);
}----
## 📖 Kaynak Kitaplar
1. Harvey M. Deithel, Paul J. Deitel, "C ve C++", Sistem Yayıncılık, İstanbul, 2011.
2. Prof. Dr. Ercan Nurcan Yılmaz, Dr. Serkan Gönen, "Örneklerle Uygulamalı C ve C++", İstanbul Gelişim Üniversitesi Yayınları, İstanbul, 2023.
3. Nergiz Ercil Çağıltay, Gül Tokdemir, C. Fügen Selbes, Çiğdem Turhan, "C Dersi Programlamaya Giriş", Kişisel Yayınlar, Ankara, 2010.
4. Nergiz Ercil Çağıltay, Gül Tokdemir, C. Fügen Selbes, Çiğdem Turhan, "C Dersi Çözümlü Problem Kitabı", Ankara, 2012.
5. Dr. Erdal Güvenoğlu, "Çözümlü C Örnekleri", Nobel Akademik Yayıncılık, Ankara, 2022.
6. Prof. Dr. Fatih Başçiftçi, "C Programlama Dİli", Atlas Akademi, Konya, 2010.
7. C. Laplace and Bloodshed Software, Dev-C++ (Version 5.11) [Computer software]. Bloodshed Software, 2016. [Online]. Available: https://www.bloodshed.net/ [Accessed: May 10, 2025].
⚡ **Bilgi Paylaştıkça Gelişir!** 🚀
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
## Bu Github paylaşımının IEEE ve APA formatlarınada atıf verilme şekli:
IEEE--> A. Cetinkaya, "C Programlama Dili Rehberi" GitHub, [Online]. Erişim Linki: https://github.com/acetinkaya/C-Programlama-Rehberi. Son Erişim Tarihi: Gün Ay Yıl.
APA--> Cetinkaya, A. (2025). C Programlama Dili Rehberi [GitHub Deposu]. GitHub. Erişim Linki: https://github.com/acetinkaya/C-Programlama-Rehberi. Son Erişim Tarihi: Gün Ay Yıl.
---
Yukarıdaki bilgi, resim ve kod çalışmaları açık kaynak paylaşım olarak GitHub "acetinkaya" alanında paylaşımı yapılmıştır.
Proje Durumu: İlgili paylaşımlar ve C programlama dilinde yazılmış yazılım kodlarına sürüm güncellemeleri yaptıkça bu paylaşımları güncelleyeceğiz. GitHub bölümünden beğeni bildirimi olarak bir yıldız vererek çalışmalarımı destekleyebilirsiniz. Bilgi paylaşıldıkça büyür ve gelişir.
Katkıda Bulunma: Fork - Çekme istekleri memnuniyetle karşılanır. Büyük değişiklikler için lütfen önce neyi değiştirmek istediğinizi görüşmek üzere ilgili C kodunu belirttiğiniz bir soru - yanıt bölümü açın.
Bilgi paylaşıldıkça çoğalır ve gelişir. İyi çalışmalar dilerim.Yazar ve Güncelleme Yapan: [Öğr. Gör. Ali Çetinkaya (MSc.)](https://github.com/acetinkaya) - 2025
---
The above information, images, and code examples are shared as open-source content on GitHub under the "acetinkaya" account.
Project Status: The relevant posts and software codes written in the C programming language will be updated as new versions are released. You can support my work by giving a star to the repository on GitHub. Knowledge grows and develops as it is shared.
Contributing: Forks and pull requests are warmly welcomed. For major changes, please first open a question-answer thread indicating which C code you want to modify to discuss your proposal. Knowledge multiplies and improves when shared. Best wishes for your work!Author and Maintainer: [Lect. Ali Cetinkaya (MSc.)](https://github.com/acetinkaya) - 2025
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------