Değişkenler program içerisinde kullanacağımız sayıların, yazıların tutulduğu alanlardır. Bunlar içerisinde ne tür veri tuttuğumuza bağlı olarak farklı veri tiplerinde olurlar. Kısaca özet geçmek gerekirse C dilinde temel veri tipleri:
char - 1 Byte
int - Genellikle 4 Byte
float - Genellikle 4 Byte
double - Genellikle 8 Byte
Bu veri tiplerinin önüne bazı niteleyiciler koyarak, onların farklı versiyonlarını elde ederiz. Bu niteleyiciler:
short
long
unsigned
Kendi bilgisayarınızda hangi veri tipinin, kaç byte büyüklüğünde veri tutabileceğini öğrenmek çok kısa bir kodla mümkün.
#include < stdio.h >
int main(){
printf("%d byte", sizeof(int)); // int yerine double, float, long int, unsigned long int şeklinde yazabilirsiniz.
return 0;
}
Bir byte 8 bitten oluştuğu için ve her bir bit 1 veya 0 değeri alabildiği için bir byte’ın alabileceği 2^8 farklı değer vardır. Dolayısıyla int (tam sayı) veri tipi için konuşacak olursak genellikle 4 byte olduğunu söylemiştik. Bu durumda 2^(8*4) yani (2^32)-1 farklı pozitif sayı tutabilir.
Şimdi hangi veri tipinin ne için kullanılacağına gelirsek.
char: Tek bir karakter tutmak içindir. Aslında tutulan şey bir karakter değil bir sayıdır, bu sayılar ascii tablosundaki her harfe karşılık gelen sayıyı tutar. Yani char veri tipini 1 byte büyüklüğünde bir sayı tutabilecek olan veri tipi olarak düşünmek daha önemlidir. Şimdilik bunun karakter tuttuğunu bilmek yeterli.
int: Tam sayı tutmak içindir.
float: Ondalık sayı tutmak için kullanılan veri tipidir.
double: float’tan daha duyarlı, yani ondalık kısmında daha fazla basamak tutan ondalık sayılar içindir.
Bu veri tiplerinin önüne koyabileceğimiz niteleyiciler;
unsigned: İşaretsiz anlamına gelir. Yani bu sayıların her zaman pozitif olabileceğini söyleriz bu durumda işaret için kullanılan 1 bit de sayı için gelir ve -128, 127 arasında değer atayabileceğimiz değişkenimiz 0, 255 arasında değer atanabilecek hale gelir.
long: Veri tipinin daha fazla byte alması için kullanılır.
short: Veri tipinin daha az byte alması için kullanılır.
Veri tiplerine göz attıktan sonra gelelim değişkenlere. Değişkenler içerisinde sayılar tutan hafızadaki alanlara bizim verdiğimiz ve bu sayede kullanabildiğimiz(içerisine veri yazıp, okuyabildiğimiz) isimdir. Hafızadaki bilmem kaçıncı sıradaki 4 byte demek yerine , “a” ismindeki değişken diyebilmek bize kolaylık sağlar. Kullanımına baktığınızda, hiç de zor olmadığını göreceksiniz. Hemen bir kod parçacığıyla açıklamaya çalışayım.
#include
int main(){
int a=3,b,c;
long int d;
unsigned long int e;
float x,y,z;
char k,l,m;
unsigned char n;
b=6;
return 0;
}
Değişkenler veri tipi ve ardından gelen değişken ismi ile tanımlanırlar. Bu tanımlama sırasına ister içerisine değer atayabiliriz(a değişkenine bakın), isterseniz sadece oluşturup daha sonra içerisine bir veri koyarız.(b değişkenine bakın). Bu değişkenlerin içerisindeki veriyi okumak ve veri yazmak çok kolaydır. Onu da bir kod yardımıyla gösterelim.
#include
int main(){
int a,b=3;
float c;
char d;
scanf("%d %f %c", &a, &c, &d);
printf("a: %d, b: %d, c: %f, d: %c", a,b,c,d);
return 0;
}
Göstermediğimiz bir şey daha; scanf. printf ile ekrana bir şeyler bastırabiliyorduk. scanf ise bize kullanıcıdan bir veri almamızı sağlıyor. Yani bu program için kullanıcıdan 3 adet veri girmesini bekliyor. Bu verileri a, c ve d değişkenlerine atıyor. b değişkeninin değeri ise ilk oluşturulurken atanmış gördüğünüz gibi. Peki %d, %f, %c nedir? Bunlar kullanıcıdan hangi formatta bir veri okuduğunu veya ekrana hangi formatta değişkenleri basacağını gösterir.
%d tam sayı için.
%f ondalık sayı için.
%c karakter için.