- Katılım
- 5 Haz 2025
- Mesajlar
- 21
- Tepkime puanı
- 10
- Puanları
- 3
C Programlama Dili Başlangıç Rehberi
C programlama dili, yazılım dünyasının en temel ve en önemli dillerinden biridir. Günümüzde işletim sistemleri, gömülü sistemler, sürücüler, oyun motorları ve performans gerektiren birçok yazılımda C dili kullanılmaktadır.Yeni başlayan biri için C dili ilk başta biraz zor görünebilir. Bunun nedeni değişkenler, bellek, pointer ve derleme gibi kavramlarla erken aşamada karşılaşılmasıdır.
Ancak C öğrenmenin büyük bir avantajı vardır:
Programlamanın temel mantığını gerçekten anlamanızı sağlar.
C öğrendikten sonra:
- C++
- C#
- Java
- Rust
- Go
Bu rehberde C diline sıfırdan başlayan bir kullanıcının bilmesi gereken temel konuları ele alacağız.
C Programlama Dili Nedir?
C, genel amaçlı ve derlenen bir programlama dilidir.1970'li yıllarda Dennis Ritchie tarafından Bell Labs içerisinde geliştirilmiştir.
C özellikle düşük seviyeli sistem işlemleriyle yüksek seviyeli programlama arasında iyi bir denge sunar.
Bu nedenle:
- İşletim sistemleri
- Mikrodenetleyiciler
- Sürücüler
- Sistem yazılımları
- Gömülü cihazlar
- Performans gerektiren programlar
C Dili Hâlâ Kullanılıyor mu?
Evet.Oldukça eski bir dil olmasına rağmen C günümüzde hâlâ çok yaygın şekilde kullanılmaktadır.
Bunun temel nedenleri:
- Çok hızlı olması
- Donanıma yakın çalışabilmesi
- Küçük çalışma zamanı maliyeti
- Çok geniş platform desteği
- Büyük mevcut kod tabanı
Özellikle gömülü sistemlerde C hâlâ en önemli dillerden biridir.
C Öğrenmek Mantıklı mı?
Programlamaya yeni başlıyorsanız C öğrenmek oldukça faydalıdır.Çünkü size yalnızca kod yazmayı değil:
- Bellek nasıl çalışır?
- Değişken nedir?
- Fonksiyon nedir?
- Program nasıl derlenir?
- Veri bellekte nasıl tutulur?
- Pointer nedir?
Ancak yalnızca hızlı şekilde web sitesi geliştirmek istiyorsanız C ilk tercih olmayabilir.
C daha çok programlama mantığını ve sistem tarafını öğrenmek isteyen kişiler için uygundur.
C ile Neler Yapılabilir?
C kullanarak:- Konsol uygulamaları
- Hesap makineleri
- Dosya işlemleri
- Sistem araçları
- Mikrodenetleyici yazılımları
- Oyun motoru bileşenleri
- Ağ uygulamaları
- İşletim sistemi parçaları
Ancak grafik arayüzlü modern masaüstü uygulamaları için ek kütüphaneler gerekir.
C ile C++ Aynı mı?
Hayır.C ve C++ birbirine benzese de farklı programlama dilleridir.
C daha çok prosedürel programlama üzerine kuruludur.
C++ ise C'den etkilenmiş ancak:
- Class
- Object
- Template
- OOP
Yeni başlayan biri için önce C öğrenmek zorunlu değildir ancak temel mantığı anlamaya yardımcı olabilir.
C ile C# Aynı mı?
Hayır.İsimleri benzer olsa da oldukça farklı dillerdir.
C:
Düşük seviyeye daha yakın ve manuel bellek yönetimi sunar.
C#:
.NET platformu üzerinde çalışan modern ve yüksek seviyeli bir dildir.
Unity'de kullanılan C# ile C dili aynı değildir.
C Programlamak İçin Ne Gerekir?
Temel olarak üç şey gerekir:- Kod editörü
- C derleyicisi
- Terminal veya IDE
Derleyici kodu makine diline dönüştürür.
Ardından program çalıştırılabilir dosya haline gelir.
Derleyici Nedir?
C yorumlanan değil, derlenen bir dildir.Örneğin şu dosyayı oluşturduğunuzu düşünelim:
main.c
Derleyici bunu alır ve işlemcinin çalıştırabileceği makine koduna dönüştürür.
Sık kullanılan C derleyicileri arasında:
- GCC
- Clang
- MSVC
Hangi Programla C Yazılır?
Yeni başlayanlar için birkaç seçenek vardır.Visual Studio Code
Hafif ve popülerdir.Ancak C derleyicisinin ayrıca kurulması gerekir.
Visual Studio
Windows'ta kapsamlı bir geliştirme ortamıdır.C ve C++ geliştirme araçları kurulabilir.
Code::Blocks
Basit ve başlangıç dostu bir IDE'dir.CLion
Profesyonel bir IDE'dir ancak ücretlidir.Yeni başlayan biri için Visual Studio veya VS Code yeterlidir.
İlk C Programı
Klasik ilk örnek:#include <stdio.h>
int main(void)
{
printf("Merhaba Dunya!\n");
return 0;
}
Bu program ekrana:
Merhaba Dunya!
yazar.
include Nedir?
Şu satır:#include <stdio.h>
standart giriş ve çıkış fonksiyonlarının bulunduğu kütüphaneyi programa dahil eder.
printf() fonksiyonunu kullanabilmemizin nedeni budur.
main Fonksiyonu Nedir?
C programlarının temel başlangıç noktası:int main(void)
fonksiyonudur.
Program çalıştırıldığında işletim sistemi çalışmaya buradan başlar.
printf Nedir?
printf() ekrana çıktı yazdırmak için kullanılır.Örneğin:
printf("Merhaba");
ekrana:
Merhaba
yazar.
\n Ne İşe Yarar?
\nyeni satır karakteridir.
Örneğin:
printf("Merhaba\nDunya");
çıktı:
Merhaba
Dunya
olur.
return 0 Ne Demektir?
main() fonksiyonunun sonunda:return 0;
kullanılması programın başarıyla tamamlandığını işletim sistemine bildirir.
Noktalı Virgül Neden Kullanılır?
C'de birçok komut:;
ile biter.
Örneğin:
int yas = 25;
ve:
printf("Merhaba");
sonunda noktalı virgül bulunmalıdır.
Yeni başlayanların en sık yaptığı hatalardan biri bunu unutmasıdır.
Yorum Satırı Nasıl Yazılır?
Tek satırlık yorum:// Bu bir yorumdur
Birden fazla satır:
/*
Bu
birden fazla
satirlik yorumdur.
*/
Yorumlar program tarafından çalıştırılmaz.
Kodun ne yaptığını açıklamak için kullanılır.
Değişken Nedir?
Değişken, program içerisinde veri saklamak için kullanılan isimlendirilmiş bellek alanıdır.Örneğin:
int yas = 25;
burada:
yas
değişken adıdır.
int
veri tipidir.
25
değeridir.
Temel Veri Tipleri
C dilinde başlangıçta bilinmesi gereken başlıca veri tipleri:int
Tam sayılar.int sayi = 10;
float
Ondalıklı sayılar.float fiyat = 25.5f;
double
Daha yüksek hassasiyetli ondalıklı sayılar.double pi = 3.141592;
char
Tek karakter.char harf = 'A';
char ile String Aynı mı?
Hayır.char tek karakter tutar.
Örneğin:
char harf = 'A';
Metin ise C'de karakter dizisi şeklinde tutulur.
Örneğin:
char isim[] = "Ahmet";
printf ile Değişken Yazdırma
Örneğin:int yas = 25;
printf("Yasim: %d\n", yas);
çıktı:
Yasim: 25
olur.
Buradaki:
%d
int değerini yazdırmak için kullanılır.
Temel Format Belirteçleri
Sık kullanılanlar:%d → int
%f → float/double çıktı
%c → char
%s → string
Örneğin:
char isim[] = "Ali";
int yas = 20;
printf("Isim: %s\n", isim);
printf("Yas: %d\n", yas);
Kullanıcıdan Veri Alma
C'de kullanıcıdan veri almak için başlangıçta scanf() kullanılabilir.Örneğin:
#include <stdio.h>
int main(void)
{
int yas;
printf("Yasinizi girin: ");
scanf("%d", &yas);
printf("Yasiniz: %d\n", yas);
return 0;
}
& İşareti Neden Kullanıldı?
Buradaki:&yas
değişkenin bellek adresini ifade eder.
scanf() kullanıcının girdiği değeri bu adrese yazar.
Bu konu ileride Pointer öğrenirken daha anlaşılır hale gelir.
Matematiksel İşlemler
C'de temel işlemler:+ toplama
- cikarma
* carpma
/ bolme
% mod
Örneğin:
int a = 10;
int b = 5;
int toplam = a + b;
Basit Hesap Makinesi
#include <stdio.h>int main(void)
{
int a;
int b;
printf("Birinci sayiyi girin: ");
scanf("%d", &a);
printf("Ikinci sayiyi girin: ");
scanf("%d", &b);
printf("Toplam: %d\n", a + b);
return 0;
}
Başlangıç için güzel bir egzersizdir.
if Koşulu
Programın belirli koşullara göre farklı işlemler yapmasını sağlar.Örneğin:
int yas = 20;
if (yas >= 18)
{
printf("Resitsiniz.\n");
}
if else Kullanımı
int yas = 16;if (yas >= 18)
{
printf("Resitsiniz.\n");
}
else
{
printf("Resit degilsiniz.\n");
}
Karşılaştırma Operatörleri
C'de:== eşittir
!= eşit değildir
> büyüktür
< küçüktür
>= büyük veya eşittir
<= küçük veya eşittir
kullanılır.
= ile == Farkı
Çok önemlidir.Tek:
=
değer atamak için kullanılır.
int sayi = 10;
Çift:
==
karşılaştırma yapar.
if (sayi == 10)
Yeni başlayanların sık yaptığı hatalardan biridir.
Mantıksal Operatörler
Birden fazla koşulu birlikte kontrol etmek için:&& → VE
|| → VEYA
! → DEĞİL
kullanılır.
Örneğin:
if (yas >= 18 && yas <= 65)
{
printf("Kosul saglandi.\n");
}
switch Yapısı
Bir değişkenin farklı değerlerine göre işlem yapmak için kullanılabilir.int secim = 2;
switch (secim)
{
case 1:
printf("Bir\n");
break;
case 2:
printf("Iki\n");
break;
default:
printf("Gecersiz secim\n");
}
Döngü Nedir?
Bir kod parçasını tekrar tekrar çalıştırmak için kullanılır.C'de başlıca:
- for
- while
- do while
for Döngüsü
Örneğin 1'den 10'a kadar yazdırmak:for (int i = 1; i <= 10; i++)
{
printf("%d\n", i);
}
while Döngüsü
int i = 1;while (i <= 10)
{
printf("%d\n", i);
i++;
}
do while Döngüsü
int i = 1;do
{
printf("%d\n", i);
i++;
}
while (i <= 10);
do while içerisinde kod en az bir kez çalışır.
break Ne İşe Yarar?
Döngüyü tamamen bitirmek için kullanılır.Örneğin:
for (int i = 0; i < 100; i++)
{
if (i == 10)
{
break;
}
printf("%d\n", i);
}
continue Ne İşe Yarar?
Mevcut döngü adımını atlayıp sonraki adıma geçer.for (int i = 1; i <= 10; i++)
{
if (i == 5)
{
continue;
}
printf("%d\n", i);
}
Burada 5 ekrana yazılmaz.
Fonksiyon Nedir?
Fonksiyon belirli bir işi yapan kod bloğudur.Örneğin:
void merhaba(void)
{
printf("Merhaba!\n");
}
Daha sonra:
merhaba();
şeklinde çağrılabilir.
Parametreli Fonksiyon
void yazdir(int sayi){
printf("%d\n", sayi);
}
Kullanımı:
yazdir(25);
Değer Döndüren Fonksiyon
int topla(int a, int b){
return a + b;
}
Kullanımı:
int sonuc = topla(10, 20);
sonuc değeri:
30
olur.
Diziler Nedir?
Aynı türde birden fazla veriyi saklamak için kullanılır.Örneğin:
int sayilar[5] = {10, 20, 30, 40, 50};
Dizinin ilk elemanına:
sayilar[0]
ile erişilir.
C'de diziler:
0'dan başlar.
Dizi Döngüsü
int sayilar[5] = {10, 20, 30, 40, 50};for (int i = 0; i < 5; i++)
{
printf("%d\n", sayilar);
}
String Kullanımı
C'de string için özel yerleşik veri tipi bulunmaz.Karakter dizileri kullanılır.
Örneğin:
char isim[] = "Mehmet";
Karakter dizisinin sonunda otomatik olarak:
\0
null karakteri bulunur.
Bu karakter string'in bittiğini belirtir.
Pointer Nedir?
C dilinin en önemli ve başlangıçta en zor görünen konularından biridir.Pointer, başka bir değişkenin bellek adresini tutan değişkendir.
Örneğin:
int sayi = 10;
int *ptr = &sayi;
Burada:
sayi
10 değerini tutar.
&sayi
sayi değişkeninin adresidir.
ptr
bu adresi saklar.
Pointer Neden Önemlidir?
Pointer:- Diziler
- Dinamik bellek
- Fonksiyonlar
- Veri yapıları
- Sistem programlama
C öğrenirken pointer konusunu atlamamak gerekir.
Pointer Değerine Ulaşmak
printf("%d\n", *ptr);buradaki:
*ptr
pointer'ın gösterdiği adresteki değeri verir.
Sonuç:
10
olur.
struct Nedir?
Birden fazla farklı veri tipini tek yapı altında toplamak için kullanılır.Örneğin:
struct Ogrenci
{
char isim[50];
int yas;
};
Daha sonra:
struct Ogrenci ogrenci1;
oluşturulabilir.
Dosya İşlemleri
C ile dosya okuyup yazabilirsiniz.Örneğin dosya açmak:
FILE *dosya = fopen("test.txt", "w");
Dosyaya yazmak:
fprintf(dosya, "Merhaba");
Son olarak:
fclose(dosya);
ile kapatılır.
Dosyaları kapatmayı unutmamak önemlidir.
C Dili Bellek Yönetimi
C dilinde bellek üzerinde kullanıcıya oldukça fazla kontrol verilir.Dinamik bellek için:
- malloc
- calloc
- realloc
- free
Örneğin:
int *sayilar = malloc(10 * sizeof(int));
işiniz bittiğinde:
free(sayilar);
yapmanız gerekir.
free Neden Önemlidir?
Dinamik olarak ayrılan bellek serbest bırakılmazsa:Memory Leak
oluşabilir.
Program giderek daha fazla RAM tüketebilir.
Bu nedenle C programlamada bellek yönetimi oldukça önemlidir.
Segmentation Fault Nedir?
C öğrenirken sık karşılaşabileceğiniz hatalardan biridir.Program erişmemesi gereken bir bellek alanına erişmeye çalıştığında oluşabilir.
Örneğin:
- Geçersiz pointer
- Dizi sınırını aşma
- NULL pointer kullanımı
Dizi Sınırlarına Dikkat
Örneğin:int sayilar[5];
dizisinin geçerli index değerleri:
0
1
2
3
4
şeklindedir.
Şu kullanım:
sayilar[5] = 10;
dizinin dışına çıkar.
C çoğu durumda sizi otomatik olarak durdurmaz.
Bu nedenle sınır kontrolü programcıya aittir.
NULL Nedir?
NULL, pointer'ın geçerli bir adres göstermediğini belirtmek için kullanılabilir.Örneğin:
int *ptr = NULL;
Pointer kullanılmadan önce:
if (ptr != NULL)
{
// Kullan
}
şeklinde kontrol yapılabilir.
Header Dosyaları Nedir?
C projelerinde .h uzantılı header dosyaları kullanılır.Örneğin:
hesap.h
Dosya içerisinde fonksiyon bildirimleri bulunabilir.
Büyük projelerde kodun:
- .c
- .h
C Kodları Nasıl Derlenir?
GCC kullanıyorsanız basit örnek:gcc main.c -o program
Ardından Windows'ta:
program.exe
Linux/macOS tarafında:
./program
şeklinde çalıştırılabilir.
Derleme Hatası Nedir?
Kod derlenirken syntax veya başka bir problem varsa compiler hata verir.Örneğin:
printf("Merhaba")
sonundaki:
;
unutulursa hata alınabilir.
Compiler'ın verdiği:
- Dosya
- Satır
- Hata mesajı
Warningleri Önemseyin
Program derleniyor diye bütün kod doğru değildir.Compiler bazen:
warning
gösterebilir.
Örneğin:
- Yanlış veri tipi
- Kullanılmayan değişken
- Tehlikeli dönüşüm
Yeni başlayan biri olarak warningleri mümkün olduğunca çözmeye çalışın.
C Öğrenirken Ezber Yapmalı mıyım?
Hayır.Özellikle bütün fonksiyonları ezberlemeye gerek yoktur.
Önemli olan:
- Değişken mantığını
- Koşulları
- Döngüleri
- Fonksiyonları
- Pointer mantığını
Syntax zamanla zaten öğrenilir.
İlk Projeler Ne Olmalı?
Başlangıçta küçük projeler seçin.Hesap Makinesi
Toplama, çıkarma, çarpma ve bölme.Sayı Tahmin Oyunu
Bilgisayar rastgele sayı seçsin.Kullanıcı tahmin etmeye çalışsın.
Not Hesaplama
Vize ve final notuna göre ortalama hesaplama.Basit Menü Sistemi
Kullanıcı seçenek seçsin.Öğrenci Kayıt Programı
struct ve dizi pratiği.Dosyaya Not Kaydetme
Dosya işlemleri pratiği.İlk Başta Yapılmaması Gereken Projeler
Yeni başladığınız anda:- İşletim sistemi
- Oyun motoru
- Büyük 3D oyun
- Ağ sunucusu
Önce küçük konsol uygulamalarıyla temel mantığı oturtun.
C Öğrenme Sırası
Başlangıç için şu sıra oldukça uygundur:- C kurulumu ve derleme
- printf
- Değişkenler
- Veri tipleri
- Matematiksel işlemler
- scanf
- if/else
- switch
- for/while
- Fonksiyonlar
- Diziler
- Stringler
- Pointer
- struct
- Dosya işlemleri
- Dinamik bellek
C Öğrenirken En Çok Yapılan Hatalar
Noktalı Virgülü Unutmak
int sayi = 10yerine:
int sayi = 10;
olmalıdır.
= ve == Karıştırmak
Atama:=
Karşılaştırma:
==
Dizi Sınırını Aşmak
Dizi indexlerine dikkat edilmelidir.Pointer'ı Anlamadan Ezberlemek
Pointer'ı kod olarak değil bellek adresi mantığıyla öğrenin.free Kullanmayı Unutmak
Dinamik bellek serbest bırakılmalıdır.Compiler Hatalarını Okumamak
Hatanın olduğu satırı ve mesajı kontrol edin.Sadece Video İzlemek
Kod yazarak pratik yapmak gerekir.C Programlama İçin Pratik Öneriler
- Her gün küçük kod yazın.
- Kodları kendiniz tekrar yazın.
- Copy/Paste kullanımını azaltın.
- Compiler hatalarını araştırın.
- Debugger kullanmayı öğrenin.
- Fonksiyonlara bölerek kod yazın.
- Değişkenlere anlamlı isimler verin.
- Küçük projeler geliştirin.
- Pointer konusundan kaçmayın.
Debugger Nedir?
Debugger, programınızı adım adım çalıştırmanızı sağlar.Bu sayede:
- Değişken değerlerini
- Programın hangi satırda olduğunu
- Hatanın nerede oluştuğunu
Visual Studio ve VS Code gibi geliştirme ortamlarında debugger kullanılabilir.
Programlamayı öğrenirken debugger kullanmayı erken öğrenmek büyük avantaj sağlar.
Kod Düzeni Önemli mi?
Evet.Şu şekilde:
if (sayi > 10)
{
printf("Buyuk\n");
}
yazmak:
if(sayi>10){printf("Buyuk\n");}
yazmaktan çok daha okunabilirdir.
Kodun çalışması kadar okunabilir olması da önemlidir.
Değişken İsimleri Nasıl Olmalı?
Şu şekilde:int x;
yerine kullanım amacına göre:
int ogrenciSayisi;
yazmak daha anlaşılırdır.
Küçük örneklerde tek harf kullanılabilir ancak büyük projelerde anlamlı isimler önemlidir.
C Zor Bir Dil mi?
Başlangıçta Python gibi dillere göre biraz daha zor olabilir.Çünkü:
- Veri tipleri
- Pointer
- Bellek
- Derleme
Ancak tam olarak bu nedenle C öğrenmek programlama temelini güçlendirebilir.
C Öğrendikten Sonra Hangi Dile Geçilir?
Hedefe göre değişir.Oyun Geliştirme
C++veya Unity için:
C#
Web
JavaScript, TypeScript veya backend dilleri.Sistem Programlama
C++ veya Rust.Mikrodenetleyici
C ve C++.Mobil Uygulama
Kotlin, Swift veya çapraz platform çözümleri.C bilgisi bu dillerin temel mantığını anlamada yardımcı olur.
Yeni Başlayanlar İçin Kontrol Listesi
- C derleyicisini kurdum mu?
- İlk Hello World programımı çalıştırdım mı?
- printf kullanabiliyor muyum?
- Değişken nedir biliyor muyum?
- int, float, double ve char farkını biliyor muyum?
- scanf kullanabiliyor muyum?
- if/else yazabiliyor muyum?
- for ve while döngüsü kullanabiliyor muyum?
- Fonksiyon oluşturabiliyor muyum?
- Dizi mantığını biliyor muyum?
- String mantığını biliyor muyum?
- Pointer nedir biliyor muyum?
- struct kullanabiliyor muyum?
- Dosyaya veri yazabiliyor muyum?
- Compiler hata mesajlarını okuyabiliyor muyum?
- Küçük bir proje tamamladım mı?
Sonuç
C programlama dili, programlama dünyasına güçlü bir temel ile başlamak isteyen kişiler için oldukça iyi bir seçimdir.Başlangıçta:
- Pointer
- Bellek yönetimi
- Derleme
Ancak bu kavramlar bilgisayarın ve programların nasıl çalıştığını daha iyi anlamanızı sağlar.
Yeni başlayan biri için en doğru öğrenme sırası:
Değişkenler → Koşullar → Döngüler → Fonksiyonlar → Diziler → Stringler → Pointer → Struct → Dosya işlemleri
şeklinde olabilir.
C öğrenirken en önemli nokta yalnızca eğitim videosu izlemek değil, sürekli kod yazmaktır.
Örneğin:
Hesap makinesi → Sayı tahmin oyunu → Not hesaplama → Öğrenci kayıt sistemi → Dosya işlemleri
şeklinde küçük projeler geliştirmek çok daha hızlı ilerlemenizi sağlar.
Kısacası C dili ilk başta biraz zorlayıcı olsa da programlama mantığını, belleği ve bilgisayarın çalışma yapısını öğrenmek isteyen biri için en öğretici programlama dillerinden biridir.


