Professional Documents
Culture Documents
HER YÖNÜYLE
C
Tevfik Kızılören
KODLAB
II
®
KODLAB 95
HER YÖNÜYLE C
TEVFİK KIZILÖREN
ISBN 978-605-5201-09-8
Yayıncılık Sertifika No: 13206
Grafik Tasarım
Kodlab Grafik
Satış ve Pazarlama
Can Üstünel
Bu kitabın bütün yayın hakları Kodlab Yayın Dağıtım Yazılım ve Eğitim Hizmetleri
San. ve Tic. Ltd. Şti.’ne aittir. Yayınevimizin yazılı izni olmaksızın kısmen veya
tamamen alıntı yapılamaz, kopya çekilemez, çoğaltılamaz ve yayınlanamaz.
KODLAB Yayın Dağıtım Yazılım ve Eğitim Hizmetleri San. ve Tic. Ltd. Şti.
15 Temmuz Mh. 1481. Sk. No : 44/A Bağcılar / İSTANBUL
TEVFİK KIZILÖREN
1982 yılında Konya’da doğdu. Lisans ve Yüksek Lisans eğitimini Anadolu Üniversitesi
Elektrik-Elektronik Mühendisliği bölümünde tamamladı. Şu anda bir kamu kuruluşunda
yazılım uzmanı olarak görev yapmaktadır. Çalıştığı kurum için Java tabanlı irili ufaklı çok
sayıda uygulama geliştiren yazar, çeşitli bilimsel araştırma projeleri için danışmanlık
yapmaktadır. Halen Elektrik-Elektronik Mühendisliği konusunda Doktora eğitimine
devam etmekte olan yazarın Java teknolojileri dışındaki ilgi alanları arasında Paralel
Programlama, Ağ Güvenliği, Yapay Sinir Ağları, Görüntü İşleme ve Gömülü Programlama
bulunmaktadır. Yazarımızın KODLAB’tan daha önce Java ve Java Teknolojileri,
Objective-C, Swift ve Objective-C ile iOS SDK kitapları çıkmıştır.
IV
V
ÖN SÖZ
Çoğu mühendislik öğrencisi gibi ben de programlamaya C dili ile başladım. Başlangıç
olarak bu dili öğrenmek bana pek çok avantaj sağladı. En önemli avantajlarından bir
tanesi, diğer programlama dillerine geçişte çok büyük kolaylık sağlamasıydı. Aynı söz
dizimini kullanmaları sebebiyle, C programlama dilini hakkıyla bilen birisinin C’den
türemiş programlama dillerini öğrenme süresi çok daha kısa olmaktadır. Bu sebeple
temeli C programlama dili olan öğrenciler, diğer programlama dilleriyle başlayan
öğrencilere göre daha avantajlıdır.
C programlama dili getirdiği çeşitli alt seviye özellikler sebebiyle, öğrenmesi görece zor
bir programlama dilidir. Bu kadar yaygın olmasının sebebiyse; öğrenilmesini zorlaştıran
alt seviye özelliklerinin dile benzersiz bir güç katmasıdır. C programlama dili, hafıza
erişimin esnekliği, yaygın kütüphaneleri ve kullanıcı kitlesi sayesinde; halen günümüzün
en popüler programlama dilleri arasındadır.
KİTAP HAKKINDA
C programlama dili getirdiği çeşitli alt seviye özellikler sebebiyle, öğrenmesi görece zor
bir programlama dilidir. Bu kadar yaygın olmasının sebebiyse; öğrenilmesini zorlaştıran
alt seviye özelliklerinin dile benzersiz bir güç katmasıdır. C programlama dili, hafıza
erişimin esnekliği, yaygın kütüphaneleri ve kullanıcı kitlesi sayesinde halen günümüzün
en popüler programlama dilleri arasındadır.
Bu kitapta C programlama dilinin tüm özellikleri olabildiğince detaylı ve bol örnekli bir
şekilde okuyucuya sunulmuştur. Anlatılan her bir konu ardından o konuyu anlatan 144
adet örnek eklenmiştir. Örnekler olabildiğince kısa tutulmaya çalışılmış ve örnekleri
açıklarken konunun üzerinden tekrar geçilerek konunun pekiştirilmesi amaçlanmıştır.
Kitabın içeriği tüm üniversiteler için C ile Programlamaya Giriş ve benzeri derslerin
müfredatının tamamını karşılamaya uygun olarak tasarlanmıştır.
İÇİNDEKİLER
1 GİRİŞ 1
Bu Kitap Kimler İçin? 1
Programlama Dili Kavramı 2
Programlama Dilinin Tarihçesi 2
Programlama Dillerinin Türleri 4
Makina Dili 4
Assembly Dili 4
Scrıpt Dilleri 5
Yüksek Seviye Programlama Dilleri 5
C Programlama Dilinin Tarihçesi 6
C Programlama Dili Neden Bu Kadar Yaygın? 8
4 DEĞİŞKENLER 59
Giriş 59
Değişken Kavramı 60
Değişkenlerin Tanımlanması 60
İÇİNDEKİLER XI
6 OPERATÖRLER 109
Atama Operatörü (=) 110
Aritmetik Operatörler (+, -, *, /, %) 110
Toplama Operatörü (+) 110
Çıkarma Operatörü (-) 111
Negatifleme Operatörü (-) 111
Çarpma Operatörü (*) 112
Bölme Operatörü (/) 112
Mod Operatörü (%) 113
Aritmetik Artırma ve 113
Eksiltme Operatörleri (++, --) 113
Aritmetik Artırma Operatörü (++) 114
Aritmetik Eksiltme Operatörü (--) 114
Artırma ve Eksiltme Operatörlerinin 115
Değişkenin Önünde ve Arkasında 115
Yer Almasının Farkları 115
Aritmetik Atama Operatörleri (+=, -=, *=, /=, %=) 116
Topla ve Ata Operatörü (+=) 116
İÇİNDEKİLER XIII
9 DÖNGÜLER 211
Giriş 211
Döngüler 214
while Döngüsü 214
Sonsuz Döngü (Infınıte Loop) 217
do-while Döngüsü 217
for Döngüsü 221
İç İçe Döngüler 225
break ve continue Deyimleri 228
break 228
continue 229
Bundan Sonrası 230
Bölüm Sonu Soruları 230
19 C DİLİNİN STANDARTLARI VE
C UYGULAMALARININ TAŞINABİLİRLİĞİ 619
Giriş 619
C Programlama Dilinin Standartları 619
Kernıghan & Rıtchıe Standardı - K&R C 620
ANSI C Standardı (C89) 620
ISO C Standardı (C90) 621
C Diline 1995 Yılında Yapılan Ekleme (Normatıve Addendum 1 - NA1) 621
ISO 99 C Standardı (C99) 622
ISO 2011 C Standardı (C11) 622
Kodun Belli Bir Standarda Göre Derlenmesi 624
C Programlarının Taşınabilirliği 625
Standart Kütüphanelerin Tam Listesi 626
Bundan Sonrası 629
XXVI HER YÖNÜYLE C