
DELETE komutu bir veritabanındaki tablolarda yer alan kayıtları silmek için kullanılır.
DELETE komutunun genel yazım şekli:
DELETE FROM tablo_adı WHERE sütun_adı=deger
WHERE yapısı kullanılmadığında tüm kayıtlar, kullanıldığında ise sadece koşulu karşılayan kayıtlar silinir.
Aşağıdaki personel adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
| Adi |
Soyadi |
Gorevi |
Memleketi |
DTarihi |
| Ahmet |
Kara |
Öğretmen |
Sinop |
27.06.1980 |
| Mehmet |
Ertürk |
Öğretmen |
Manisa |
05.02.1972 |
| Serdar |
Şenel |
Memur |
Eskişehir |
25.09.1987 |
| Metin |
Gökay |
Memur |
İzmir |
07.04.1989 |
| Mehmet |
Keskin |
Öğrenci |
Kars |
28.08.1998 |
| Seyfi |
Coşar |
Öğrenci |
Kırşehir |
09.11.1996 |
| Cihan |
Özkan |
Öğrenci |
Sivas |
15.03.1997 |
Eğer aşağıdaki komutu kullanırsanız; “Seyfi Coşar” isimli kayıt silinir:
Devamı...

Daha önce, aynı türden olan verileri diziler içinde tanımladıktan sonra, sadece bir dizi ismini kullanarak bu verilere erişim sağladığımızı gördük. Türleri farklı olan verileri tek bir isim altında toplayabilmemiz için ise, yapı (structure) adı verilen kullanıcı tanımlı veri türlerini kullanabiliriz.
Yapı, farklı veri türlerini bir grup altında toplayan kullanıcı tanımlı bir veri türüdür. İki veya daha fazla elemandan oluşur. Bir yapı içindeki bütün veri tipleri aynı olabileceği gibi, her veri türü birbirinden farklı da olabilir.
Yapı bildirimi
Yapıları tanımlamak için aşağıda gösterilen üç yöntemden birini kullanabiliriz::
Devamı...

typedef ifadesini kullanarak, standart veri türlerinini (int, char, float, vs.) veya kullanıcı tanımlı yapıları farklı isimlerle tanımlayabiliriz. Bu şekilde mevcut bir veri türü için yeni bir isim veya yeni bir veri türü oluşturabiliriz. typedef ifadesinin genel yapısı aşağıdaki gösterilmektedir:
Devamı...

C standart kütüphanesi, ANSI C standardında belirtildiği gibi C programlama dili için standart kütüphanedir.
C standart kütüphanesi string kullanımı, matematiksel hesaplamalar, giriş/çıkış işlemleri, bellek yönetimi ve diğer bazı işletim sistemi hizmetleri gibi görevler için makrolar, veri türleri ve fonksiyonlar tanımlar.
C standart kütüphanesinde tanımlanan tüm fonksiyon, makro ve veri türlerinin her biri bir başlık dosyasında tanımlanmıştır. Bu başlık dosyaları programlara #include ön işlemci direktifi ile dahil edilerek, fonksiyon, makro ve veri türlerini kullanmamız sağlanır. Başlık dosyalarının diğer bir görevi de, standart kütüphane dosyalarının prototipini programa sağlamasıdır.
ANSI C standartlarına göre sınırlı sayıda temel fonksiyon için tanımlanan kütüphane dosyalarına “Standart C Kütüphanesi” adı verilir. Standart C kütüphanesine ek olarak derleyici ve IDE üreticileri kendi ürettikleri özel fonksiyonların bulunduğu kütüphaneler oluşturarak kullanıcıların hizmetine sunmaktadırlar.
Kütüphane fonksiyonlarının programlarda kullanılabilmesi için, fonksiyonlar hakkındaki başlık bilgileri, C derleyicisinin bir alt dizininde (genelde include adlı) bulunan ve uzantısı .H olan dosyalara yerleştirilmiştir. Bu dosyalara “Başlık Dosyaları” adı verilir.
Günümüzde kullanılmakta olan C derleyicileri ve IDE’leri hazırlanırken, ANSI C standartlarına göre tanımlanmış olan bazı temel fonksiyonlar ile çok sık kullanılabileceği tahmin edilen ve günün ihtiyaçlarına göre miktarı değişebilen, IDE üreticileri tarafından hazırlanan fonksiyonları “Kütüphane Dosyaları” adı verilen ve .LIB uzantılı dosyalara yerleştirilir. Bu dosyalar derleyicinin belirli bir alt dizinine (genelde lib adlı) yerleştirilir. Kütüphane dosyaları içinde yer alan fonksiyonlara “Kütüphane Fonksiyonları” adı verilir.
C Standart Kütüphanesi Başlık Dosyaları
| Dosya adı |
Açıklama |
C Standardı |
| (assert) |
Bir programın hata ayıklama sürümlerinde mantıksal hataların ve diğer hata türlerinin algılanmasına yardımcı olmak için kullanılan assert makrosunu içerir. |
C89 |
| (complex) |
Karmaşık sayılarla ilgili fonksiyonlar içerir. |
C99 |
| (ctype) |
Karakterleri türlerine göre sınıflandırmak veya büyük ve küçük harflere çevirmek için kullanılan fonksiyonlar içerir. |
C89 |
| (errno) |
Kütüphane fonksiyonları tarafından bildirilen hata kodlarını kontrol etmek için kullanılan fonksiyonlar içerir. |
C89 |
| (fenv) |
Float değerleri kontrol eden fonksiyonlar içerir. |
C99 |
| (float) |
Float değerlerle ilgili makro sabitleri içerir. |
C89 |
| (inttypes) |
Tam genişlikte integer değer veri türlerini tanımlar. |
C99 |
| (iso646) |
Bazı standart token’ları tanımlamak için alternatif yöntem olarak birkaç makro tanımlar. |
NA1 |
| (limits) |
Integer veri türleri için makro sabitleri tanımlar. |
C89 |
| (locale) |
Yerelleştirme fonksiyonları içerir. |
C89 |
| (math) |
Yaygın matematiksel fonksiyonlar içerir. |
C89 |
| (setjmp) |
Yerel olmayan çıkışlar için kullanılan setjmp ve longjmp makroları içerir. |
C89 |
| (signal) |
Sinyal işlem fonksiyonları içerir. |
C89 |
| (stdalign) |
Nesnelerin hizalanmasını sorgulamak ve tanımlamak için. |
C11 |
| (stdarg) |
Fonksiyonlara aktarılan değişkenlere erişim sağlama için |
C89 |
| (stdatomic) |
Thread’ler arasında paylaşılan veri üzerinde atomik işlemler için. |
C11 |
| (stdbool) |
Bool veri türü tanımlar. |
C99 |
| (stddef) |
Bazı veri türleri ve makrolar tanımlar. |
C89 |
| (stdint) |
Tam genişlikte integer veri türü tanımlar. |
C99 |
| (stdio) |
Temel giriş ve çıkış fonksiyonlarını içerir. |
C89 |
| (stdlib) |
Sayısal dönüşüm, rasgele sayı üretme, bellek ayırma ve proses kontrol fonksiyonları içerir. |
C89 |
| (stdnoreturn) |
Değer geri döndürmeyen fonksiyonlar içerir. |
C11 |
| (string) |
Karakter dizisi fonksiyonları içerir. |
C89 |
| (tgmath) |
Tür tabanlı matematiksel fonksiyonlar içerir. |
C99 |
| (threads) |
Birden fazla thread, muteks ve koşul değişkenlerini yöneten fonksiyonlar içerir. |
C11 |
| (time) |
Tarih ve zaman işlemleri için fonksiyonlar içerir. |
C89 |

Bilgisayar ve bilgisayar programlama dillerinde dört farklı sayı sistemi kullanılmaktadır:
- Onlu (Decimal) sayı sistemi
- İkili (Binary) sayı sistemi
- Sekizli (Octal) sayı sistemi
- Onaltılı (Hexadecimal) sayı sistemi
Sayı sistemlerini ifade eden değerler, söz konusu sayı sisteminde kullanılan rakam sayısını göstermektedir. Örneğin, sekizli sayısı sistemi, bu sistemde 8 adet rakam kullanıldığını ifade etmektedir.
Sayı sistemlerinde kullanılan rakamlar aşağıda gösterilmektedir:
Devamı...

Derleme işleminin ilk safhasında, önişlemci derleyiciye bazı direktifler ulaştırır. Derleyici tarafından bazı özel işlemlerin yapılmasını sağlayan bu direktiflere Önişlemci Direktifleri adı verilir. Şimdi, önişlemci direktiflerini sıra ile incelemeye çalışalım:
#define önişlemci direktifi
#define önişlemci direktifi, programlarımızın herhangi bir işlem satırında kullanılmak üzere, istediğimiz ifadelerin kısa bir isim altında tanımlamamızı sağlar. #define önişlemci direktifinin genel yapısı aşağıda gösterilmektedir:
Devamı...

C’de, belirli int sabitlerinin bir liste halinde tanımlanan karakter dizilerine atanmasına yarayan numaralandırma kavramının genel yapısı aşağıda gösterilmektedir:
Devamı...
Konsol işlemleri klavye ve ekran ile gerçekleştirilen işlemleri kapsar. Bu bölümde, C temelli temel giriş çıkış fonksiyonları ele alınacaktır.
getchar() ve putchar() fonksiyonları
Klavyeden girilen bir karakteri okuyarak bellekteki bir değişkene atamak için getchar() fonksiyonu, ekrana tek bir karakter yazdırmak için ise, putchar() fonksiyonu kullanılır. stdio.h başlık dosyasını kullanan bu iki fonksiyonun genel yapısı prototipi aşağıda gösterilmektedir:
Devamı...
İşaretçiler, bilgisayar belleğindeki belli bir adresin, genellikle bir değişkene ait, kaydedildiği ve kaydedilen bellek adresine doğrudan erişim sağlayan değişkenlerdir.
İşaretçi bildirimi
İşaretçilerin diğer değişkenlerden tek farkı başka bir değişkenin bellek adresini içeriyor olmasıdır. Aşağıdaki satır işaretçi bildiriminin genel yapısını göstermektedir:
veri-türü *değişken-adı;
Yukarıdaki satırda yer alan veri-türü ifadesi işaretçinin adresini gösterdiği değerin veri türünü, değişken-adı ifadesi ise işaretçinin adını göstermektedir. * işareti işaretçi değişken bildiriminde kullanılmaktadır. Aşağıdaki işlem satırı ip adlı int bir işaretçi değişkeni oluşturmaktadır:
Devamı...
C’de, fonksiyon bir veya daha fazla işlem satırından oluşan kodların bir kod bloğu şeklinde yapılandırılması ile oluşturulur. Fonksiyonlar oluşturulduktan sonra programın herhangi bir yerinden sadece fonksiyon adı kullanılarak çağrılabilir. Bu sayede, çok fazla sayıda işlem satırı tek bir isim kullanılarak çalıştırılmış olur.
Fonksiyon yapısı
Fonksiyon, eğer varsa, kendisine geçirilen parametreleri de kullanarak kod bloğu içindeki işlem satırları ile bir takım işlemler yaparak bir sonuç elde eder. Elde edilen sonuç, ihtiyaca bağlı olarak, fonksiyon içinde ya da return komutu ile geri döndürüldükten sonra program içinde kullanılır.
Devamı...
Bu bölümde, C temelli dosya giriş ve çıkış işlemlerini incelemeye çalışacağız. Bu işlemler üzerinde çalışmaya başlamadan önce, akış ve dosya kavramlarını ayrı ayrı ele alalım:
Akış
Dosya sistemi farklı donanım elemanları ile çalışma olanağı sağlar. Bu donanım elemanı bir klavye, ekran, disk sürücü veya bilgisayarda kullanılan bir port olabilir.
Dosya giriş çıkış işlemlerinin temelini, bilgisayarı oluşturan aygıtlar için mantıksal bir arabirim görevi yapan, Akış adı verilen bir kavram oluşturur. Genel bir ifade ile, akış bir dosyaya ulaşmak için kullanabileceğiniz mantıksal bir ara birimdir. Ancak burada kullanılan dosya ifadesi, diske kaydedilebilen bir dosyayı ifade etmekle birlikte, ekran ve klavye gibi donanım elemanlarından birini de ifade edebilir. Dosyaların yapıları veya kapasiteleri farklı olabilir, ancak akışların tamamı aynıdır. Bu özellik, donanım elemanlarını benzer şekilde tanımlama olanağı sağlar. Yani, dosya sistemi bu farklı donanım elemanlarını akış vasıtası ile benzer elemanlar gibi kullanabilir. Böylece, disk üzerindeki bir dosyaya yazı yazmak için kullandığınız fonksiyonları, aynı zamanda ekrana ve yazıcıya yazı yazmak için de kullanabiliriz.
Akış, stdio.h başlık dosyası içinde tanımlı FILE adlı yapı veri türünden bildirimi yapılan bir işaretçi değişkeni ile kullanılan bir dosya veya fiziksel bir cihazdır.
Bir akışın dosya (fiziksel aygıtlar dahil) ile bağlantısını sağlamak için açma işlemi, dosyadan bağlantısını kesmek için kapama işlemi uygulanır. Dosya açıldıktan sonra, dosyadan programımıza bilgi aktarabilir veya dosya içeriğini değiştirebiliriz.
2 tür akış vardır:
Devamı...

Tek bir işlem satırını veya kod bloğunu bir defadan fazla çalıştırmak için tekrar yazmak yerine, daha pratik bir uygulama olan döngü kavramını kullanabiliriz.
Bir veya birden fazla işlem satırını, bir koşula bağlı olarak, belirli sayıda veya bir koşul sağlandığı sürece tekrarlayarak çalıştıran kalıplara döngü adı verilir.
C’de, for, while ve do while olmak üzere 3 farklı döngü kullanılmaktadır.
for döngüsü
C’de kullanılan 3 adet döngüden bir tanesi for döngüsüdür. Programların yazılmasında çok büyük kolaylık sağlar. for döngüsü tek bir işlem satırını veya birden fazla işlem satırından oluşan bir kod bloğunu programcının istediği sayıda tekrar etmek için kullanılır. for döngüsünün genel yapısı aşağıda gösterilmektedir:
Devamı...
Diziler aynı veri çeşidinden olan değişkenlerin aynı isim altında tanımlanması olarak ifade edilebilir. Diziler kullanılarak, aynı isimle birden fazla değişkene erişilebilir ve işlem yapılabilir.
Diziler tek ya da çok boyutlu olarak tanımlanabilir ve dizi boyutu ihtiyaca göre ayarlanabilir.
Diziler belirli bir veri türünden tanımlanabileceğinden, dizilerde sadece aynı veri türünden değişken değerleri yer alabilir.
Tek boyutlu diziler
C’de, aynı veri tipinden olan değişkenleri tek bir isim altında toplayarak tek boyutlu diziler oluşturabiliriz. Programlarda, aynı veri türünden ve farklı isimlere sahip çok fazla sayıda değişken tanımlamak yerine, dizi bildirimi yapmak suretiyle sadece tek isim kullanarak aynı sayıda değişken tanımlamak daha pratik bir sistem ve kolaylık sağlar. Dizi tanımlandığında, dizinin her bir elemanına dizi adı ile birlikte 0’dan başlayarak kullanılan indeks değeri ile erişim sağlanır.
Tek boyutlu dizi bildirimi
Tek boyutlu dizilerin bildirimi için kullanılan genel yapı aşağıda gösterilmektedir:
Devamı...

C’de kaliteli uygulamalar geliştirmek için dinamik belleği daha etkin bir şekilde kullanmamız gerekir. Program normal koşullarda ihtiyaç duyulan bellek tahsisini ve bellek boşaltma işlemlerini işlem satırlarında yer alan kodlara uygun olarak yapar. Ancak, bazı durumlarda, değişkenlere atanacak verilerin boyutu ve ihtiyaç duyulan bellek miktarı programın çalışması esnasında belirlenebileceğinden, bellek tahsis ve boşaltma işlemlerini program çalışması esnasında dinamik olarak gerçekleştirmek gerekir.
Dizi tanımlaması gibi yapılan bazı işlemler belleğin otomatik olarak tahsis edilmesini sağlarken, bazı işlemler bu olanağı sağlamaz. Bu durumda, programın çalışması esnasında gereksinim duyduğumuzda bellek tahsis edebiliriz. Bu işleme dinamik bellek kullanımı yöntemi adı verilir.
Tüm derleyiciler tarafından sağlanan dört adet dinamik bellek tahsis fonksiyonu vardır:
malloc() fonksiyonu
Dinamik bellek kullanımı için genellikle malloc() ve free() fonksiyonları birlikte kullanılır. malloc() fonksiyonu belleği tahsis ederken, free() fonksiyonu ise önceden tahsis edilmiş belleği boşa çıkarır. Bu fonksiyonların genel yapısı aşağıda gösterilmektedir:
Devamı...
Bileşim, iki veya daha fazla değişken tarafından ortaklaşa kullanılan tek bir bellek birimidir. Burada bahsi geçen değişkenler farklı veri türünden olabilir. Ancak, aynı bellek bölgesini paylaşan değişkenlerden sadece bir tanesi aynı anda bellek bölgesini kullanabilir. Genel görünüşü ile yapılara benzeyen bileşimlerin genel yapısı aşağıdaki gösterilmektedir:
Devamı...
Bir C programının çalıştığı bilgisayarın belleği aşağıdaki bölümlerden oluşur.
- Kod (Metin) bölümü (Code segment)
- İlk değer atanmış veri bölümü (Initialized data segment)
- İlk değer atanmamış veri bölümü (Uninitialized data segment)
- Stack
- Heap

Kod (Metin) bölümü (Code segment)
Code segment bir C programının çalıştırılabilir talimatlarını içeren bir bellek bölgesidir.
Code segment derlenmiş programın ikili sayı sistemine göre oluşturulmuş değerlerini içerir.
Yanlışlıkla değiştirilmemesi için, code segment sadece okunur olarak düzenlenmiştir.
Code segment, heap ve stack bellek bölümlerinin aşırı kullanımlarının kendi bellek bölgesi üzerine yazma sorununu engellemek için heap ve stack bölgelerinin altında yer alır.
Fonksiyonlar ve karakter dizisi sabitleri bu bölümde yer alır.
İlk değer atanmış veri bölümü (Initialized data segment)
İlk değer atanmış veri bölümü, programcı tarafından ilk değer atanmış olan global ve static değişkenleri içeren, bir programın sanal adres boşluğunu bir parçasıdır.
İlk değer atanmış veri bölümü, değişkenlerin değerleri programın çalışma zamanında değiştirilebileceğinden, sadece okunur nitelikte değildir.
Bu bölüm ileride sadece okunur ve okunur-yazılır olarak iki bölüme ayrılabilir.
İlk değer atanmış veri bölümü, programın kaynak kodunda bir ilk değer atanmış olan global ve statik değişkenleri içerir.
İlk değer atanmamış veri bölümü (Uninitialized data segment)
İlk değer atanmamış veri bölümü, BSS bölümü olarak ta adlandırılır. Bu bölümdeki verilere, program çalışmaya başlamadan önce 0 değeri verilir.
İlk değer atanmamış veri bölümü, veri bölümünün sonundan başlar ve programın kaynak kodunda bir ilk değer verilmemiş ve otomatik olarak 0 değeri atanmış bütün global ve statik değişkenleri içerir.
Stack
Stack alanı geleneksel olarak heap alanına bitişiktir ve ters yöne doğru büyür; stack işaretçisi heap işaretçisi ile karşılaşması boş belleğin tükendiğini gösterir.
Belleğin üst bölümlerinde yer alan stack alanı, LIFO (Last In First Out - Son Giren İlk Çıkar) yapısına sahip program belleğini içerir. Standart PC x86 bilgisayar mimarisinde stack adresin sıfır değerine doğru büyür; diğer bazı mimarilerde ise ters yönde büyür. Bir “stack işaretçisi” kaydı stack bölümünün üstünü izler; stack içine her değer yerleştirilmesinde ayarlanır. Bir fonksiyon çağrısı için stack bölümüne aktarılan değer kümesine “stack çerçevesi” denir. Bir stack çerçevesi en az bir dönüş adresinden oluşur.
Stack bölümünde, bir fonksiyonun her çağrılmasında kaydedilen bilgilerle birlikte otomatik değişkenler saklanır. Bir fonksiyon her çağrıldığında, geri dönülecek yerin adresi ve fonksiyonu çağıranın ortamı ile ilgili bazı bilgisayar register değerleri gibi bilgiler stack bölümüne kaydedilir. Yeni çağrılan fonksiyon daha sonra otomatik ve geçici değişkenleri için stack içinde yer ayırır.
Stack bölümünde, fonksiyonun lokal değişkenleri (işaretçi değişkenler dahil), fonksiyona geçirilen parametreler ve fonksiyon dönüş adresi yer alır.
Heap
Heap dinamik bellek tahsisinin yapıldığı bellek bölümüdür.
Heap alanı BSS bölümünün sonunda başlar ve oradan daha büyük adreslere doğru büyür. Heap alanı, malloc(), realloc() ve free() fonksiyonları tarafından yönetilir.
Aşağıdaki örnekte, farklı bellek bölümlerine yapılan atamaları göstermek üzere, biri ilk değer atanmış diğeri atanmamış olmak üzere 2 adet global değişken, biri ilk değer atanmış diğeri atanmamış olmak üzere 2 adet static değişken, dinamik bellek tahsisi yapılan bir karakter işaretçisi ve bir adet yerel değişken oluşturularak, önce değişken değerleri sonra bellek adres değerleri ekrana yazılmıştır.
Örnek
Devamı...

İşaretsiz 2’lik sayı sisteminde (unsigned binary system) 8 bitlik alanda aşağıdaki tam sayıları ifade ediniz:
İşaretli ikilik sayı sisteminde (signed binary system)
- 1 byte’lık alanda yazılabilecek en küçük tamsayı nedir?
- 1 byte’lık alanda yazılabilecek en büyük tamsayı nedir?
- 2 byte’lık alanda yazılabilecek en küçük tamsayı nedir?
- 2 byte’lık alanda yazılabilecek en büyük tamsayı nedir?
- 4 byte’lık alanda yazılabilecek en küçük tamsayı nedir?
- 4 byte’lık alanda yazılabilecek en büyük tamsayı nedir?
- 8 byte’lık alanda yazılabilecek en küçük tamsayı nedir? (Yaklaşık bir sayı yazabilirsiniz.)
- 8 byte’lık alanda yazılabilecek en büyük tamsayı nedir? (Yaklaşık bir sayı yazabilirsiniz.)
İşaretli 2’lik sayı sisteminde (signed binary system) 8 bitlik alanda aşağıdaki tam sayıları ifade ediniz:
Aşağıdaki sayıların 2’ye tümleyenlerini (two’s complement) yazınız:
- 1001 0000
- 0000 0001
- 1111 0100
- 1111 1111
- 0101 1010
Aşağıda 10‘luk sayı sisteminde yazılmış tam sayıları 16‘lık sayı sisteminde ifade ediniz:
Aşağıda tanımlanan sayıları 16‘lık sayı sisteminde ifade ediniz:
- İşaretli ikilik sayı sisteminde 2 byte‘lık alanda yazılabilecek en küçük tam sayı
- İşaretli ikilik sayı sisteminde 2 byte‘lık alanda yazılabilecek en büyük tam sayı
- İşaretli ikilik sayı sisteminde 2 byte‘lık alanda yazılan -1 değeri
İşaretsiz ikilik sayı sistemi için aşağıdaki cümlelerde işaretli yerleri doldurunuz:
- 1 byte‘lık alanda ifade edilebilecek en büyük tamsayı _____ değeridir.
- 16 bitlik bir sayının en yüksek anlamlı biti (most significant bit) sayının _____ bitidir.
- 8 bitlik bir sayının en düşük anlamlı biti (lest significant bit) sayının _____ bitidir.
- İşaretsiz (unsigned) bir tam sayının yalnızca tek bir biti ise o sayı 2‘nin _____.
- 15 sayısının 1‘e tümleyeni (one’s complement) _____ değeridir.
- Bir tamsayının 0.biti 1 ise o sayı _____.
Aşağıdaki bildirimlerden geçersiz olanları işaretleyiniz:
Devamı...
İfade (expression) adı verilen yapı içinde, program değişken ve sabitlerden oluşan verilere işlemciler yoluyla bir işlem yapar. Artık, ifadeleri oluşturan veri kavramını incelemeye başlayabiliriz.
Veri türleri
C’de aşağıda gösterilen 5 temel veri çeşidi vardır:
C temel veri türleri
| Anahtar kelime |
Veri türü |
| char |
Karakter |
| int |
Tamsayı |
| float |
Kayan noktalı sayı |
| double |
Çift duyarlıklı kayan noktalı sayı |
| void |
Değersiz |

Veri türü değiştiricileri (modifiers)
Sadece char, int ve double veri türlerinin önüne aşağıda gösterilen değiştiricileri koyarak, veri tiplerinin işaret (+/-) durumunu, byte olarak boyutlarını ve sınırlarını değiştirebiliriz. C++’da kullanılan veri türü değiştiricileri ve uygulandıkları veri türleri aşağıda gösterilmektedir:
C veri türü değiştiricileri
| Değiştirici |
Uygulandığı veri türü |
| signed |
char, int |
| unsigned |
char, int |
| long |
int, double |
| short |
int |
Değişken tanımlamalarında signed değiştirici ifadesi kullanıldığında, tanımlanan değişkenin ikili sayı sistem değeri içinde en üst sırada yer alan bit’i işaret bit’i olarak kullanılır. Bu değer 0 olursa sayı pozitif, 1 olursa sayı negatif olur. Ancak, bu durumda bir bit sayının işaretini belirlemek için ayrıldığından tanımlanan değişkene atanacak değer otomatik olarak azalır.
Bilgisayarlarda, bir sayının ikili sayı sisteminde gösteriminde en solda yer alan bit, sayının negatif veya pozitif olduğunu göstermek üzere, işaret bit’i olarak kullanılır.
Pozitif bir sayıyı negatif bir sayıya çevirmek için, sayıdaki bütün bit değerlerinin tersi alınır ve elde edilen sayıya 1 değeri eklenir.
Biri signed diğeri unsigned olan iki adet char ve iki adet short int veri türünden değişken tanımlayalım:
Devamı...

Programlarımızda, iki veya daha fazla seçenekli koşul kontrolü sağlayan bir sistemi oluşturmak için if deyimini kullanabiliriz. Seçeneğin fazla olduğu durumlarda, programın her durumda bütün if satırlarını tek tek kontrol etme zorunluluğundan dolayı, programın çalışmasını daha hızlı ve pratik bir duruma getirmek için if-else-if yapısını kullanabiliriz.
Switch kalıbı
Şimdi, C’de çok seçenekli bir sistem sağlayan switch kalıbını incelemeye çalışalım. yelim. switch kalıbı bir ifadenin sonucuna bağlı olarak içinde yer alan herhangi bir seçenekteki işlem satırlarını çalıştıran bir kalıptır. Bu kalıbın genel yapısını birlikte inceleyelim:
Devamı...
Sabitler, adından da anlaşılabileceği gibi, programlarda kullanılan değiştirilemeyen değerlerdir. Sabitler herhangi bir veri türünden tanımlanabilir. Sabitler genellikle programların başında değişkenlere bir ilk değer atama amacı ile veya farklı ifade oluşumlarının içinde kullanılabilir.
Farklı veri türünden yapılan sabit tanımlamaları aşağıda gösterilmektedir:
Devamı...