C/C++ Veri Türleri (Değişkenler)

 Daha önce bahsettiğimiz üzere C ve C++ farklı diller olmasına rağmen bu konu altında iki dili bir bütün olarak düşünüp veri türlerini inceleyeceğiz. Veri denilince akla ilk gelen kavram değişkenlerdir. Biz programlamada bir değişken tanımlayıp değişken içerisine değerler atayarak kullanırız. Programlama ile biraz ilgili olan herkes tam sayılar için integer, ondalıklı sayılar için float, alfabetik karakterler için ise char türü değişkenlerin kullanıldığını bilir. Programlamada başlangıç seviyesinde biraz ileriye doğru gittiğimizde verilerin sadece int, char gibi değişkenlerde saklanmadığını, bir çok farklı türün kullanıldığını görürüz. Bu nedenle tüm türleri ifade etmek için değişken kavramı yetersiz kalır ve veri türü ifadesini kullanırız. GeeksfoGeeks sitesinde rastladığım aşağıdaki tabloyu veri türlerini anlama konusunda oldukça faydalı buluyorum. 

C/C++ Veri Türleri
Referans : https://www.geeksforgeeks.org/c-data-types

 Tabloyu incelemeye geçmeden önce; programlama sırasında bir veri tipi tanımladığımız zaman aslında derleyiciye bu veri tipi için bellekte ne kadar yer ayırması gerektiğini bildirmiş oluruz. Tüm veri türleri bellekte 1 ve 0 'dan oluşan ikili sayılar (bit) şeklinde saklanır. İkili sayılara aşina değilseniz buraya göz atabilirsiniz. Biz programın ihtiyacına göre kullanacağımız veri tipini belirler ve kullanırız. Tüm veri tiplerinin bir kapasitesi vardır ve bellekte farklı boyutta yer işgal ederler. 

1. Temel (Primary) Veri Tipleri 

Bu türler dil içerisinde ön tanımlı olarak yer alır ve programcı tarafından doğrudan kullanılabilirler. 

Integer : Tamsayıları saklamak için kullanılır. 

Character : Alfabetik karakterler ve sembolleri saklamak için kullanılır. 

Boolean : Var-Yok, Açık-Kapalı, Doğru-Yanlış gibi mantıksal durumları saklamak için kullanılır. 

Floating Point : Ondalıklı sayıları saklamak için kullanılır. 

Double Floating Point : Ondalıklı sayıları saklamak için kullanılır. Saklama kapasitesi daha fazladır. 

Void : Herhangi bir değer saklamaz. Fonksiyonların adreslemesinde kullanılır. 

Wide Character : Yine Alfabetik karakterleri ve semboller için kullanılır ancak Character türüne göre kapasitesi daha fazladır. 


2. Türetilmiş Veri Tipleri 

Temel veri tipleri vasıtası ile oluşturulan veri tipleridir. 

Function : Fonksiyonlar veriler ile işlem yapar ve bu nedenle hafızada yer kaplarlar. 

Array : Bir veri tipi dizisi oluşturmakta kullanılır. 

Pointer : Bir veri tipinin bellek adresini saklar. 

Referance : Bir veri tipi için referans teşkil eder.


3. Kullanıcı Tanımlı Veri Tipleri


Bu türlerin yapısı kullanıcı tarafından belirlenir. 

Enum : Numaralandırma işlemi yapar. 

Typedef : Tür Tanımlaması yapar.

Structure : Veri türlerinden oluşan yeni yapı tanımlar.

Union : Veri türlerinden oluşan yeni yapı tanımlar. Hafıza kullanımı yönünden struct tan farklıdır. 

Class : Veri türleri ve dahili fonksiyonlara sahip sınıf yapısıdır. 


 Şu ana kadar tüm veri türlerinden özet olacak şekilde bahsettik. Elbette bu özet bilgi veri türlerini anlamak için kesinlikle yetersizdir. Temel olarak bilinmesi gereken dört tip vardır. Bunlar; Tamsayılar, Ondalıklı Sayılar, Mantıksal durumlar ve Karakterlerdir. Diğer tüm türler bu 4 tip veri türü üzerine inşa edilmiştir. 


Veri türü değiştiricileri (modifiers)

 Temel veri türlerinin ön tanımlı ve kullanıma hazır olduğundan bahsetmiştik. Bu türlerin kapasitesi bellidir. Ancak bazı temel veri türlerinin kapasitesi veri türü değiştiriciler ile değiştirilebilir. 

C/C++ Veri Türü Değiştiricileri
Referans : https://www.geeksforgeeks.org/c-data-types


Signed :  Sadece int ve char türü ile birlikte +/- işaretli sayılar için kullanılır. Negatif sayıların önünde - işareti bulunduğu için işaretli olarak adlandırılır

Unsigned : Int ve char türü ile birlikte sadece pozitif sayılar için kullanılır. Normalde pozitif sayıların önünde + işareti bulunmadığı için işaretsiz olarak adlandırılır. 

Long : Int ve double türleri için kullanılır. Türün kapasitesini arttırır. 

Short : Sadee int türü için kullanılır. Türün kapasitesini azaltır. 


 Tür değiştiriciler kombine şekilde de kullanılabilirler. Temel veri türlerinin kapasitelerini ve tür değiştiriciler ile bu durumun nasıl değiştiğini anlamak için aşağıdaki tabloyu incelemek faydalı olacaktır. Ayrıca bu tablo temel veri türleri için referans niteliğindedir. 

Veri Tipi Kapasitesi
(byte)
Kapasite
(bit)
Aldığı Farklı
Değer Sayısı
Alt Sınır Üst Sınır
Integer 4 32 4.294.967.296 -2.147.483.648 2.147.483.647
Unsigned Int 4 32 4.294.967.296 0 4.294.967.295
Short Int 2 16 65.536 -32.768 32.767
Long Int 4 32 4.294.967.296 -2.147.483.648 2.147.483.647
Unsigned Short Int 2 16 65.536 0 65.535
Unsigned Long Int 4 32 4.294.967.296 0 4.294.967.295
Long Long Int 8 64 2^64 -(2^63) (2^63)-1
Unsigned Long Long Int 8 64 2^64 0 (2^64)-1
Char 1 8 256 -128 127
Signed Char 1 8 256 -128 127
Unsigned Char 1 8 256 0 255
Float 4 32 1.17549e-038 3.40282e+038
Double 8 64 2.22507e-308 1.79769e+308
Long Double 12 96 3.3621e-4932 1.18973e+4932
Wchar_t 2 veya 4 16 veya 32


Not : Tablodaki değerler (özellikle integer türü için) kullanılan derleyiciye veya işletim sistemine veya işlemci bit kapasitesine göre değişiklik gösterebilir. Yukarıdaki tablo gcc 32bit derleyicisi için referans değerlerdir. Kullanılan sistemde kullanılan veri türünün kapasitesini kesin olarak tespit etmek için Sizeof() fonksiyonundan yararlanılabilir. 

Yorum Gönder

Daha yeni Daha eski