C++ veri tipleri, değişkenlerin tanımlanması esnasında, değişkenin türünü ve boyutunu belirlemektedir.
Tanımlanacak değişken; tam sayı, kayan noktalı sayı, karakter, boole gibi farklı türde değerler içerebilir. Derleyicinin anlaması için hangi türde değer tanımlanacağı belirtilmelidir.
int sayi = 100;
Yukarıda, 100 tam sayı değerini, sayi isimli değişkene aktardık ve bu değişkenin tam sayı (integer) olduğunu int ifadesi ile belirttik.
Boyutlar
C++ veri tipleri, bellekte kendisine ayrılan belirli boyutta alanları kaplar. Örneğin, bir karakter (char) için bellekte 1 byte alan tahsis edilir. 1 byte = 8 bit yani 8 adet binary (0 ve 1) haneye karşılık gelmektedir.
Sadece “A” karakterini belleğe göndermek istediğimizde, A karakteri, bellekte 1 byte’lık alanı kaplar.
A’nın, ASCII tablosundaki decimal (onluk taban) değeri 65‘tir. A’nın, bellekte yerleşeceği 1 byte’lık (8 bit) açılımı ise 01000001 şeklindedir. Yani biz klavyeden A harfine bastığımızda, işlemcimiz bunu 01000001 olarak algılar ve geçici olarak kaydedilmek üzere RAM belleğe bu şekilde gönderir. Daha iyi kavrayabilmek için bilgisayarın anladığı dil olan binary (ikilik) sayı sisteminde çevirme işlemlerini ve ASCII standartlarını öğrenmelisiniz.
Binary (ikilik) olarak verilen 1010 sayısının Decimal (onluk) tabana dönüştürme işlemine bakalım
1’e denk gelen kısımların değerlerini topladığımızda (8 + 2) = 10 sayısını buluruz.
Pratik bir yol ile 85 sayısının dönüşümü
Temel Veri Tipleri
Veri Tipi | Anlamı | Boyut | Değer |
---|---|---|---|
int | Tam sayı | 2 or 4 bytes | -2147483648 to 2147483647 |
float | Kayan noktalı (32 bit) | 4 bytes | 10^-38 to 10^38 |
double | Çift duyarlı kayan (64 bit) | 8 bytes | 10^-308 to 10^308 |
char | Karakter | 1 byte | -127 to 127 or 0 to 255 |
wchar_t | Geniş karakter | 2 bytes | -2147483648 to 2147483647 |
bool | Boole | 1 bit | 0/1 |
void | Boş | 0 | 0 |
1 byte yer kaplayan karakter (char), işaretsiz olarak en fazla 255 değerini alabilir. Başında eksi (-) olursa, en soldaki hane işaret için tahsis edilir ve bu durumda işaretli char en fazla 127 değerini alabilir.
#include <iostream> using namespace std; int main() { cout << "Size of char : " << sizeof(char) << endl; cout << "Size of int : " << sizeof(int) << endl; cout << "Size of short int : " << sizeof(short int) << endl; cout << "Size of long int : " << sizeof(long int) << endl; cout << "Size of float : " << sizeof(float) << endl; cout << "Size of double : " << sizeof(double) << endl; cout << "Size of wchar_t : " << sizeof(wchar_t) << endl; return 0; }
Veri Tipi Modifikasyonu
C++’ta; int, double ve char veri tiplerini, eksi değerde ya da eksi değer olmayacak şekilde ya da kısa ve uzun olarak modifiye edebiliriz.
Değişken tanımlarken, gereğinden fazla bellek alanı tahsis edilmemesi için veri tiplerini modifiye edebiliriz.
C++’ta, dört farklı tipte düzenleyici vardır. Bunlar:
- signed
- unsigned
- short
- long
Veri Tipi | (Byte) | Anlamı |
---|---|---|
signed int | 4 | int ile aynıdır. |
unsigned int | 4 | sadece pozitif tam sayılar için kullanılır. |
short | 2 | küçük tam sayılar için kullanılır. (-32768 to 32767) |
unsigned short | 2 | küçük ve pozitif tam sayılar için kullanılır. (range 0 to 65,535) |
long | en az 4 | büyük tam sayılar için kıllanılır. (long int ile aynıdır) |
unsigned long | 4 | büyük pozitif tam sayılar için kullanılır. (unsigned long int ile aynıdır) |
long long | 8 | çok büyük tam sayılar için kullanılır. (long long int ile aynıdır) |
unsigned long long | 8 | çok büyük pozitif tam sayılar için kullanılır. (unsigned long long int ile aynıdır) |
long double | 12 | büyük kayan noktalı sayılar için kullanılır. |
signed char | 1 | işaretli karakterler için kullanılır. (-127 to 127) |
unsigned char | 1 | işaretsiz karakterler için kullanılır. (range 0 to 255) |