-- C

C ile Programlama Ders 2 – Veri tipleri ve değişkenler

Değişkenler C'nin herşeyidir.

Gecenin bu vaktinde uyku tutmayınca ara verdiğim derslere devam edeyim dedim. Bu aralar uykumu kaçıran çok şey var 🙂 Ucundan yakalayabilirsem ne ala , olmadı sabah ezanını dinliyoruz… neyse konumuz değil , C  🙂

Önceki dersimizde basit bir giriş yapmıştık , bu derste de C’de vazgeçilmezimiz olan veri tipleri ve değişkenlerden bahsedeceğiz biraz.

C dilinde her veri türü için bir veri tipi belirlenmiştir. Ne kullanacaksanız bellekten o kadarı için alan istersiniz ki bu belleği verimli kullanması açısından C’nin çok önemli bir özelliğidir. Örneğin karakterler bellekte 1 byte ile saklanabilmektedir. Karakterler için özel bir veritipi hazırlanmış olmasaydı her karakter için 8 byte alan ayrılacaktı ve 7 byte boşa gitmiş olacaktı .. ( Çok akıllıca )

C dilinde veri tipleri temelde 4 tanedir fakat özel amaçlı kullanımları için 3 tane de niteleyici kullanırlar.  Veri tiplerinin bellekte işgal ettiği  alan sabittir. Örneğin tam sayı değeri tutan int veri tipi bellekte 4 byte işgal etmektedir. Bazı durumlarda 4 byte ile tutulabilecek sayıdan büyük sayılarla işlem yapılması gerekebilir. Böyle durumlarda int veri tipinin önünde long niteleyicisi getirilir ve 8 byte’lık bir bellek alanı tahsis edilmiş olur. Öncelikle bunların bir tablosunu vereyim sonra açıklamasını yapalım :

Veri Tipi ve Niteleyici Açıklama Boyutu
char Tek bir karakter tutan veritipidir ayrıca -128 ile 128 arasında sayısal değer alabilir 1 byte
unsigned char Tek bir karakter tutan ve 0-255 arasında değer alabilen veri tipidir 1 byte
short int Kısa tamsayılar için 2 byte
unsigned short int Pozitif kısa tamsayılar için 2 byte
int Tam sayı tutan veri tipi 4 byte
unsigned int Pozitif tamsayı tutan veri tipi 4 byte
long int uzun tamsayılar için 8 byte
unsigned long int uzun pozitif tamsayılar için 8 byte
float kayan noktalı sayılar için 4 byte
double kayan noktalı sayılar için ( + ve -) 8 byte

Char veri tipi : Programlarınızda kullanacağınız karakterlerin bellekte depolanmasını sağlayan veri tipidir. 1 byte ile bellekte saklanır. Tanımlanması ” char degiskenadi ” şeklindedir. getch() veya scanf() gibi fonksiyonlarla değeri belirlenebilir.

int veri tipi : Tamsayılarla işlem yapılması int tanımlamasını gerektirir. Negatif ve pozitif sayıları depolayabilirler.  Eğer programınızda sadece pozitif tamsayılar kullanıyorsanız unsigned int tanımlaması size sayının üst sınırını artırma olanağı sunar. Yani negatif kısım için ayrılmış olan 2 byte’ı da kullanır ve 2 üzer 4×8 sayısına tekabül eden bir üst sınırlı sayı kullanabilirsiniz. Tanımlaması ” int degiskenadi; ” şeklindedir. Niteleyicileri kullanmak bellek tasarrufu sağlar. Küçük tamsayılarla işlem yapan bir programınız varsa short int kullanmak gibi..

Diğer veri tipleri için kaynak kitaplarınıza göz atabilirsiniz , veya aşağıdaki kaynak bağlantılara da göz gezdirebilirsiniz…

DEĞİŞKENLER : Veri tiplerinden sonra adı girilerek oluşturulan ve değeri değişebilen bellek alanlarıdır aslında. Siz bir değişken tanımlaması yaptığınızda, o veri tipinin boyutu kadar bir alan bellekte o değişkene tahsis edilir. Değişkenler tanımlanırken seçim programcıya aittir.

Örnek değişken tanımlamaları şöyle olabilir :

int hezarfen;

int sayi = 10;

char bas_harfi;

char degisken = 'e';

Görüldüğü gibi değişkenlere istediğimiz adı verebiliyoruz. Tabi C’nin korumaya aldıklarının haricinde 🙂  Aşağıdaki anahtar kelimeleri değişken adı olarak kullanamazsınız :

auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while

Bunların haricinde değişken tanımlamalarında TÜRKÇE Karakter kullanamazsınız.

Değişken tanımlamaları sayıyla başlayamaz.  int 12degisken;  tanımlaması hatalı bir tanımlamadır. Ama int degisken1;  veya int deg12isken ; şekillerini kullanabilirsiniz.

Değişkenlere tanımlandığı anda değer verebilirsiniz örneklerde olduğu gibi. Burada karakterlere değer verirken tırnakların kullanıldığına dikkat edin. Örnek bir programla bu anlatımımızı bitirelim :

Programda sizeof(); fonksiyonu yabancı gelecektir. Bu fonksiyon parantez içindeki değişkenin byte olarak değerini veren bir fonksiyondur.

#include <stdio.h>

#include <conio.h>

main()
 {
 printf( "char           : %d baytn", sizeof(char));
 printf( "short          : %d baytn", sizeof(short));
 printf( "int            : %d baytn", sizeof(int));
 printf( "long           : %d baytn", sizeof(long));
 printf( "unsigned char  : %d baytn", sizeof(unsigned char));
 printf( "unsigned short : %d baytn", sizeof(unsigned short));
 printf( "unsigned int   : %d baytn", sizeof(unsigned int));
 printf( "unsigned long  : %d baytn", sizeof(unsigned long));
 printf( "float          : %d baytn", sizeof(float));
 printf( "double         : %d baytn", sizeof(double));
 printf( "long double    : %d baytn", sizeof(long double));

getch();

return 0;

}

Bu kodda, kullandığınız derleyicide veri tiplerinin kaç byte kabul edildiğini de görmüş olursunuz.  printf’in tırnaklarından sonra bir fonksiyonun kullanabildiğine dikkatinizi çekmek isterim. Tırnak sonrasında sadece değişken kullanılacaktır diye bir kural yoktur 🙂

Bu dersimiz de bu kadar ,  saat de geç oldu zaten. Umarım işinize yarar 🙂

Ersin YILDIZ

Şubat 2011- Trabzon

Yardımcı kaynak : http://www1.gantep.edu.tr/~bingul/c/index.php?ders=2#02


Yorumla

Yorum