C Veri Tipleri (Data Types)
Önceki derslerde C Programlama Dilin'de tanımladığımız her bir değişkenin bir tipi olması gerektiğini öğrenmiştik.
- char : karakter
- int : tamsayılar
- float : ondalıklı gerçek sayı (6.basamağa kadar hassasiyet)
- double : ondalıklı gerçek sayı (10. basamağa kadar hassasiyet)
- void : boş veri tipi
Özel Veri Tipleri (Secondary Data Type)
- array : dizi
- pointer : işaretci
- structure : veri yapısı
- enum : sıralanmış değerler
- union: farklı tür ve boyutlardaki veriler
ASCII Tablosu |
printf("ornekch degiskeninin karakter degeri:%cn",ornekch);
Örnek char veri tipi
#include <stdio.h>
int main(int argc, char** argv)
{
char ornekch1 ='H';
char ornekch2 =67;
char ornekch3 =84;
printf("ornekch1 degiskeninin karakter degeri:%cn", ornekch1);
printf("ornekch1 degiskeninin sayi degeri:%dnn", ornekch1);
printf("ornekch2 degiskeninin karakter degeri:%cn", ornekch2);
printf("ornekch2 degiskeninin sayi degeri:%dnn", ornekch2);
printf("ornekch3 degiskeninin karakter degeri:%cn", ornekch3);
printf("ornekch3 degiskeninin sayi degeri:%dnn", ornekch3);
return 0;
}
Programın Çıktısı
INT Veri Tipi : Tamsayı değerlerini tutmak için kullanılır. int veri tipi bellekte en az 2 byte veya 16 bit yer tutarlar.İngilizcede tamsayı anlamına gelen integer kelimesinden gelmektedir. Program içerisinde int tipine sahip ts adında bir tamsayı değişken tanımlayarak kullanımını görelim.
Örnek int veri tipi
#include <stdio.h>
int main(int argc, char** argv)
{
signed int ts = 226;
printf("ornek int veri tipi ts degiskeninin degeri: %dn", ts);
return 0;
}
printf içerisinde tam sayı tipinde değişkenler %d biçim niteleyicisiyle yazılırlar.
DOUBLE Veri Tipi : Long Float olarak da bilinir. Aynen float gibi ondalık sayılarımızı tutmak için kullanırız. float ve double arasındaki fark ise double veri tipinin çift duyarlılıklı ve 8 byte veya 64 bit yer kaplamasıdır. Ayrıca double veri tipinde virgülden sonra 10.basamağa kadar hassasiyetteki sayılar tutulabilir. Tıpkı float tipindeki değişkenlerde kullandığımız gibi double veri tipinde de biçim niteleyicisi olarak %f ve %lf kullanılır. Double tipi, ondalıklı sayıların tanımlanmasında kullanılır. Ondalıklı sayılaryapıları gereği tamsayıları da kapsar.
#include <stdio.h>
#include <conio.h>
int main()
{
float d = 2.7;
double e = 27.7;
printf("f = %fn", d);
printf("d = %lfn",e);
getch();
return 0;
}
Programın Çıktısı
VOID Veri Tipi : Genelde değişken tanımlanırken kullanılmaz. Amacı fonksiyonların parametre almadığını veya parametre döndürmediğini göstermek için kullanılır.
Temel Veri Tiplerinin Türevleri
C Programlama dilinde temel veri tiplerinin yetersiz kaldığı durumlarda bu tiplerin önüne signed, unsigned, long ve short anahtar kelimeleriyle, temel veri tipleri esas alınarak yeni veri tipleri oluşturulmuştur..Veri tiplerinin byte olarak boyutlarını ve sınırlarını dönüştürebilirsiniz. Bu dönüşümlerde kullanılabilecek veri türleri aşağıda gösterilmektedir:
Değiştirici Veri Türü
signed char, int
unsigned char, int
long int, double
short int
Örneğin double ifadesinin önüne long ifadesi eklendiğinde oluşturulan long double veri tipi bellekte double için kullanılan 8 byte olan alanı 10 byte'a çıkarır. Değiştirici kelimeler her veri tipinin önünde kullanılamazlar. Dönüştürme işlemi için geçiçi bellek alanı kullanılır; dönüştürülen değer kullanıldıktan sonra o alan serbest bırakılır. Karekter veri tipi char dışındaki diğer tamsayı veri tiplerinde unsigned veya signed ifadesi kullanılmazsa default olarak signed kabul edilir. char veri tipinde ise değişken tanımladığımızda değişkenin signed'mı unsigned'mı olacağı derleyiciye bırakılmıştır.
Temel veri tiplerinin yetersiz kaldığı durumlarda anahtar kelimeleri kullandığımız zaman, printf() ve scanf() fonksiyonları farklı biçim niteleyicileri kullanırlar. Örnekler yer değiştirme, veri tipi dönüşümü ve biçim niteleyici kullanımı
main()
{
int x1;
double x2;
x2 = 332.544;
x1 = x2;
printf("%f %d %d", x2, x1, (int) x2);
}
Programımızda double bir değişkene atanan değeri, int bir değişkene atanır. İki değişkende değerini double değişken değerine yer değiştirme (type cast) metodu ile geçici olarak int bir değere çevirerek tekrar ekrana yazar. Atama işlemlerinde, atama işaretinin sol tarafında type cast metodu kullanılamaz.
#include "stdio.h"
main()
{
unsigned int x1;
float x2;
x1 = 32648;
x2 = 295.54;
printf("%f", x1*x2);
}
Örnekte programımız unsigned int bir değerle float bir değerin çarpımını ekrana yazar. C Programlama dilinde float ve unsigned int değerleri aynı ifade içinde kullandığından sonuç float bir değer olarak karşımıza çıkacaktır.
#include "stdio.h"
main()
{
int x1, x2;
float x3;
x1 = 24, x2 = 2, x3 = 53;
printf("%f", x3/(x1/x2));
}
Tip dönüşümü, bir ifade içinde işlem yapıldığından, önce x1 ve x2 değişken değerlerinin bölme sonucu olan 12 değeri elde edilir. Bunun nedeni her iki sayınında int bir değer olmasıdır. Daha sonra float olarak tanımlanmış olan x3 12'ye bölündüğünde, program işlem sonucunu ondalık hanesini içerecek şekilde verir.
C Programlama Dilin'de , bir ifade içinde bir char veya short int veri kullanıldığında, bu verilerin değerleri int değere çevrilir. Otomatik veri çeşidi değişimleri yapıldıktan sonra, program ifadelerde yer alan bütün verileri aynı ifade içindeki en büyük verinin çeşidine çevirir.