C Kaynak

C Programlama Dili Veri Tipleri ve Örnekler

Veri Tipleri

C programlama dilinde değişkenlerin tipini belirlemek için ve bellekte yer ayırmak için veri tipleri kullanılır. Benzer şekilde fonksiyonları da kullanmadan önce tanımlanması gerekir.

Örn:

Veri tipleri, değişkenlerin ve fonksiyonların tiplerini ve boyutlarını belirtir (Fonksiyonlarda geri dönüş değerinin tipini ve boyutunu belirler).

C Programlama Dilinde Veri Tipleri

Tipler Veri Tipleri
Temel Veri Tipleri int, char, float, double
Enumeration (Sayma) Veri Tipleri enum
Türetilmiş Veri Tipleri pointer (işaretçiler) , array (diziler), structure, union
Void Veri Tipleri void

Temel Veri Tipleri

Tam Sayı Veri Tipi

NOT: int veri tipi ile kayan noktalı (ondalıklı değer) bir değer saklamak isterseniz sadece tam sayı kısmını saklayabilirsiniz. Örn; 15,66 değerini int x=15,66 diye tanımlarsanız x=15 olarak saklar. Bu durumda float ya da double veri tiplerini kullanmanız gerekir.

Karakter Veri Tipi

Örn: A harfini bellekte saklamak istediğimizde char harf = ‘A’; şeklinde saklarız. Birden fazla karakter saklamak istediğinizde (Kelime/kelimeler) farklı bir yöntem kullanmanız gerekir.

Kayan Noktalı (Ondalık Sayı) Veri Tipi

Kayan noktalı veri tipi 2 tipten oluşur. Bunlar,

float Veri Tipi

double Veri Tipi

NOT: float veri tipi 4 byte,  double veri tipi ise bellekte 8 byte yer ayırır. Daha büyük bir değer saklamak isterseniz long double (10 byte yer ayırır) kullanabilirsiniz (long float kullanılmaz).

NOT: Çoğu kaynakta long double için 10 byte yer ayırdığı belirtiliyor. Kendi bilgisayarımda (64 bit işlemci, 64 bit işletim sistemi ve gcc derleyici ile) long double 16 byte yer ayırmakta.

C Programlama Dilinde sizeof() Fonksiyonu:

sizeof() fonksiyonu ile veri tiplerinin bellekte ne kadar alan ayırdığını bulabilirsiniz.

Örn:

Çıktı:

char bellekte 1 byte yer ayırır

int bellekte 4 byte yer ayırır

float bellekte 4 byte yer ayırır

double bellekte 8 byte yer ayırır

C Programlama Dilinde <limits.h > ve <float.h> Başlık Dosyası

limits.h ve float.h (double ve float için) başlık dosyasını projenize ekleyerek veri tiplerinin max, min değerlerini bulabilirsiniz.

Örn:

Çıktı:

int min: -2147483648

int max: 2147483647

char min: -128

char max: 127

double min: 2.225074e-308

double max: 1.797693e+308

float min: 1.175494e-38

float max: 3.402823e+38

float ve double veri tiplerinin ondalık değer olarak maksimum kaç basamak olduğunu öğrenmek için float.h başlık dosyasında bulunan fonksiyonlardan faydalanabiliriz.

Örn:

Çıktı:

float maks. ondalık basamağı: 6

double maks. ondalık basamağı: 15

long double maks. ondalık basamağı: 18

Not: Bazı kaynaklarda long double için ondalık değer olarak maksimum 19 basamak belirtilmiş.

Niteleyiciler

Veri tiplerinin (int, float, double) önüne short, long,  unsigned niteliyicileri gelebilir. Bu niteliyiciler bellekte ayrılacak alanı artırır ya da azaltır.

Örn: int  bellekte 4 byte yer ayırırken, short int 2 byte yer ayırır.

NOT:  %u ile scanf’ten bir değer alırken kullanıcı negatif bir sayı girdiğinde bazı derleyicilerde hata verebilir.

C Veri Tipi Bellekte Ayrılan Alan (Byte) Aralık
Char 1 –127 – 127
int 2 –32,767 – 32,767
float 4 1E–37 – 1E+37
double 8 1E–37 – 1E+37
long double 10 1E–37 – 1E+37
long int 4 –2,147,483,647 – 2,147,483,647
short int 2 –32,767 – 32,767
unsigned short int 2 0 – 65,535
signed short int 2 –32,767 – 32,767
long long int 8 –(263 –1) – +(263 –1)
signed long int 4 –2,147,483,647 – 2,147,483,647
unsigned long int 4 0 – 4,294,967,295
unsigned long long int 8 264 –1

*Aralıklar ve bellekte ayrılan alanlar 16 bitlik işlemci içindir. Kaynak https://fresh2refresh.com

Açıklama:

*Yöntem1

char harf;   //harf değişkeni char veri tipinde tanımlandı.

//char kullanırken karakteri tek tırnak (‘ ’) arasında yazılması gerekir.

harf = ‘C’;  //harf değişkenine C harfi atandı.

*Yöntem2

char harf = ‘C’; //harf değişkeni tanımlarken ayrıca ilk değer ataması da yapılabilir.

*Yöntem3

char harf = ‘C’, harf2, harfSon; //Birden fazla değişken tanımlaması yapılırken ilk değer ataması da yapılabilir.

NOT: Günümüzde Bellek fiyatlarının azalması ve boyutlarının çok büyük seviyelere gelmesinden dolayı veri tiplerinin bellekte kapladığı alanlara fazla dikkat edilmese de bu olay aslında çok önemlidir. Yazacağınız programın basit ve performans odaklı olmasına dikkat ediniz ve gereksiz yere bellek kullanımı yapmamaya çalışınız. En iyi program minumum bellek kullanan ve daha çok işlemciden faydalanan programdır.

Diğer veri tipleri ileriki konularda anlatılacaktır.