Kayıt Ol

Giriş

Şifremi Kaybettim

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Giriş

Kayıt Ol

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

  • Tam sayı tipindeki sayısal değerleri saklamak için kullanılır.
  • ‘int’ anahtar kelimesi ile değişken tanımlaması yapılır.
  • Bu veri tipi bellekte 2, 4 ya da 8 byte boyutunda yer ayırır. Bu boyut işlemciye göre değişir.
  • Eğer 16 bitlik bir işlemci kullanıyorsanız bellekte 2 byte yer ayırır.
  • Şuan son kullanıcıların kullandığı bilgisayarlarda ve derleyicilerde genellikle 4 byte yer ayırır.
  • -2,147,483,648, +2,147,483,647 aralığında değerler alabilir. Eğer bu sınırdan daha büyük ya da daha küçük değerlere ihtiyaç duyuyorsanız long int (8 byte yer ayırır) ya da short int (2 byte yer ayırır) kullanabilirsiniz.

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

  • Karakter veri tipi sadece bir karakteri saklamak için kullanılır
  • Bu veri tipi bellekte 1 byte yer ayırır ve sadece 1 harf saklar.
  • ‘char’ anahtar kelimesi ile değişken tanımlaması yapılır.

Ö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
  • double

float Veri Tipi

  • float veri tipi ondalıklı değerleri saklamak için kullanılır
  • Bellekte 4 byte yer ayırır (Bu değer int ile aynı ve işlemcilere bağlıdır).
  • Bu veri tipi ile ondalık değer olarak en fazla 6 basamak kullanılır. Örn; 10.123456.

double Veri Tipi

  • double veri tipinin float veri tipinden en önemli farklarından birisi ondalık değer olarak 15 basamak kullanılabilir olması. Örn; 10.123456789012345
  • 3E-308, 1.7E+308 aralığında değer alabilir (E-308=10-308, E+308=10+308 ).

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.

  • Derleyici ve donanıma bağlı olarak short tam sayılar için en az 2 byte, long ise en fazla 8 byte yer ayırır.
  • İnt, float, double veri tipleri negatif ve pozitif değerler alabilir. Eğer negatif değer kullanılmayacak ise unsigned niteliyicisi kullanarak negatif değerleri için ayrılan alanı pozitif değerler için kullanabiliriz. Örn; short int -32767 – +32767 aralığında iken unsigned short int 0 – 65535 aralığında değerler alabilir. unsigned için %u kullanarak sadece pozitif değerleri kullanabilirsiniz.

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.

Hakkında Cem Serit


Beni Takip Et

Leave a reply