C Dilinde Veri Tipleri ve Değişkenler

Geçen dersimiz de C programlama diline giriş yapıp, temel ögeleri öğrenmiştik. Bu dersimizde ise C’de değişken tanımlama ve değişkenleri inceleyeceğiz. Değişkenler; bilgisayarın geçici hafızada sakladığı sembolik gözeneklere verilen isimlerdir. Daha basitçe anlatmak gerekirse veri tutuculardır. Her programlama dilinde mevcuttur. Php dilinde ki değişkenleri de burada ki yazımızda anlatmıştık. Değişkenler de girilecek verinin tipine bağlı olarak değişken tipi belirlenir. Bunun için ilk önce veri tiplerini bilmemiz lazım.

Ana Veri Türleri

Ana veri türleri 4 adettir. Bunlar;

  1. char (karakter)
  2. int (tam sayı)
  3. float (ondalık sayı)
  4. double (rasyonel sayılar)
Türevsel Veri Türleri

Ana veri türlerine gelerek onların türevlerini oluşturan veri türleridir. Bunlar;

  1. short (kısa)
  2. long (uzun)
  3. unsigned (tanımsız)

Türevsel veri türleri sayesinde değişkenin bellekte kaplayacağı alan belirlenir. Kısa (short), uzun (long), ve normal (int) tamsayı arasında yalnızca uzunluk farkı vardır. Eğer normal tamsayı 32 bit (4 bayt) ise uzun tamsayı 64 bit (8 bayt) uzunluğunda ve kısa tamsayı 16 biti (2 bayt) geçmeyecek uzunluktadır. İşaretsiz (unsigned) ön eki kullanıldığı taktirde, veri tipi ile saklanacak değerin sıfır ve sıfırdan büyük olması sağlanır. İşaretli ve işaretsiz verilerin bellekteki uzunlukları aynıdır. Fakat, işaretsiz tipindeki verilerin üst limiti, işaretlinin iki katıdır.

Değişkenler

Gelelim asıl konumuza. Değişkenlerin tanımını yukarıda yaptık. Değişkenler programın başında tanımlanır ve yeri geldiğinde çağrılır. Bir örnek ile başlayalım;

#include<stdio.h>
int main( void )
{
int c;
a = 65;
printf("c sayısı %d",c);
return 0;
}

Şimdi yukarıda ki örneği adım adım inceleyelim. #include, int main ve return işlemlerini önceki ders anlatmıştık. Bu yüzden bunları atlıyorum. ilk olarak integer veri tipinde olan bir “a” verisi belirledik. Hemen alt satırda o “a” verisine 65 sayısını atadık ve printf() komutu ile c verisini çağırdık. Burada ki %d ifadesi bir tam sayı değerini çağıracağımız anlamındadır. Dikkat ettiyseniz %d işleminden sonra tırnak işareti ile klasik printf komutu bitiriliyor ve hemen ardından virgül koyarak hangi değişkeni çağıracaksak onu yazmamız gerekiyor. Bu örneği birazcık daha geliştirelim dersek;

#include<stdio.h>
int main( void )
{
int f;
int h;
int topla;
f = 25;
h = 65;
topla = f + h;
printf("f sayısı %d , h sayısı da %d ise toplamı %d 'dir.\n", f, h, topla);
}

Bu örnekte ise üç tane int değişken tanımladık, bu üç int değişkenden iki tanesine değer verip kalan diğer int değerde toplatıp ekrana yazdırdık. Ekrana yazdırma işleminde ise üç tane %d koyduk ve hemen ardından ekranda gözükme sırasında göre değişkenlerin isimlerini yazdık. Burada dikkat edilmesi gerek şey hangi değişken önce yazılması isteniyorsa tırnak işaretinden sonra ilk olarak o yazılmalıdır. Şimdi bir örnek daha verelim. Bu örnek ilk başta biraz zormuş gibi gelebilir ama gözünüz korkmasın. Mantığını anladığınız anda çok basit gelecektir.

#include<stdio.h>
int main( void )
{
int saat;
float para, toplam_para;
char calisan_basharf;
printf("Calisanin basharfi> ");
scanf("%c",&calisan_basharf);
printf("Aylık Calisma Suresi> ");
scanf("%d",&saat);
printf("Saat basi ucreti> ");
scanf("%f",&para);
toplam_para = saat * para;
printf("%c başharfli çalışanın, alacağı ücret: %f\n",calisan_basharf,toplam_para);
return 0;
}

Şimdi bu örneği inceleyelim. Bu programda bir tane integer, char ve iki tane float tanımladık. Dilerseniz veri türlerinin özelliklerini bir kez daha hatırlayalım. İnteger tam sayılar, float ondalıklı sayılar, char ise tek harfli değerler için (a, h, B, D vb.) kullanılıyordu.

Bu programda bir işçinin saat başı aldığı ücret ile toplam çalışma saatini çarparak ne kadar ücret alacağını bulmaya çalışıyoruz. Şimdi burada neden %c, %d, %f kullandık diye sorabilirisiniz. İnt veri türünde %d, Float’ta %f, Char veri türünde ise %c kullanılır.

Bu bilgiyi de verdikten sonra scanf() komutunu kullanmayı öğrenelim. Hatırladığınız kadarı ile geçen derste printf() komutunu anlatmıştık. printf() komutu ekrana çıktı almayı sağlıyordu. scanf() komutu ise kaba tabir ile açıklarsak klavyeden veri girişini sağlar. Kullanıımı ise şöyle, ilk olarak scanf komutu yazılır ve parantez açılır. Hemen ardından çift tırnak işareti konulur. Çift tırnak işaretinden sonra veri girişi yapılacak veri türüne göre %d, %f, %c vs. yazılır ve tırnak işareti konulur. Hemen ardından boşluk koymadan, virgül işareti konulur, boşluk bırakılır ve başına & işareti konularak değişken ismi yazılır. Ayrıca fark ettiyseniz printf() ve scanf() komut satırı içerisinde veri türlerini yazarken %d gibi tanımlama kullandık. Bunun sebebi scanf ve printf() komutlarında veri tipi simgeleri aynı olmasından.

Bu kadar uzun anlatmamdan dolayı gözünüz sakın korkmasın. Sadece aklınızda oluşabilecek ufak soruları bile düşünerek yazıyorum.

Aşağıda ki tabloda ise veri türlerinin değer aralıkları, hafıza tuttuğu bellek miktarı ve giriş/çıkış fonksiyonları yazıyor. Ezberlemek zorunda değilsiniz ama gerektiğinde ulaşabilirseniz iyi olur.

Veri Tipi Açıklama Bellekte işgal ettiği boyut (bayt) Alt sınır Üst sınır
char Tek bir karakter veya
küçük tamsayı için
1 -128 127
unsigned char 0 255
short int Kısa tamsayı için 2 -32,768 32,767
unsigned short int 0 65,535
int Tamsayı için 4 -2,147,483,648 2,147,483,647
unsigned int 0 4,294,967,295
long int Uzun tamsayı için 8  -9,223,372,036,854,775,808 9,223,372,036,854,775,807
unsigned long int 0  18,446,744,073,709,551,615
float Tek duyarlı gerçel sayı için (7 basamak) 4 -3.4e +/- 38 +3.4e +/- 38
double Çift duyarlı gerçel sayı için (15 basamak) 8 -1.7e +/- 308 +1.7e +/- 308

Dilerseniz burada noktayı koyalım. Sonra ki derste görüşmek dileği ile..

Bir Cevap Yazın