C Veri Türleri (Data Types)
C programlama dilinde değişkenlerin tipini belirlemek için ve bellekte yer ayırmak için veri türleri kullanılır. Benzer şekilde fonksiyonları da kullanmadan önce tanımlanması gerekir.
C’deki veri türleri aşağıdaki gibi sınıflandırılabilir.
No. | Türler & Tanım |
1 | Basit Tür
Aritmetik türlerdir. İnteger türler ve kayar noktalı (floating points) türler bu sınıfa girer. |
2 | Numaralandırılmış Türler
Yine aritmetik türlerdir ve program boyunca yalnızca belli değerleri alan değişkenleri tanımlamak için kullanılır. |
3 | Void Tür
Void belirteci mevcut hiçbir değer olmadığını gösterir. |
4 | Türetilmiş Türler
Pointerlar, Diziler, Structlar, Unionlar, Fonksiyonlar bu tür içerisinde sınıflandırılır. |
Integer Türü
Aşağıdaki tablo standart integer türleri, onların hafızada kapladığı alanı ve değer aralığını içerir.
Tür | Kapladığı Alan | Değer Aralığı |
char | 1 byte | -128’dan 127’e yada 0’dan 255’e |
unsigned char | 1 byte | 0’dan 255’e |
signed char | 1 byte | -128’den 127’e |
int | 2 or 4 byte | -32,768’den 32,767’e yada -2,147,483,648’den 2,147,483,647’e |
unsigned int | 2 or 4 byte | 0’dan 65,535’e yada 0’dan 4,294,967,295’e |
short | 2 byte | -32,768’dan 32,767’e |
unsigned short | 2 byte | 0’dan 65,535’e |
long | 4 byte | -2,147,483,648’dan 2,147,483,647’e |
unsigned long | 4 byte | 0’dan 4,294,967,295’e |
Bir platformda bir değişken türünün boyutunu öğrenmek için sizeof operatörü kullanılır. Aşağıdaki örnekte herhangi bir makinedeki int türünün büyüklüğünü verir.
#include <stdio.h> #include <limits.h> int main() { printf("int türünün boyutu: %d \n", sizeof(int)); return 0; }
Programı derleyip çalıştırdığınızda aşağıdaki şekilde bir sonuç gösterir.
int türünün boyutu: 4
Floating-Point Türleri (Kayar Nokta)
Aşağıdaki tablo kayar nokta türlerinin boyurunu, değer aralığını ve hassasiyetini gösterir.
Tür | Boyut | Değer Aralığı | Hassasiyet |
float | 4 byte | 1.2E-38’den 3.4E+38’e | 6 ondalık |
double | 8 byte | 2.3E-308’den 1.7E+308’e | 15 ondalık |
long double | 10 byte | 3.4E-4932’den 1.1E+4932e | 19 ondalık |
Float.h header dosyası programınızda bu değerleri kullanabilmeniz için gerekli makroları tanımlamıştır. Aşağıdaki örnek bir gloat tipinin boyutunu ve değer aralığını ekrana yazdırır.
#include <stdio.h> #include <float.h> int main() { printf("Storage size for float : %d \n", sizeof(float)); printf("Minimum float positive value: %E\n", FLT_MIN ); printf("Maximum float positive value: %E\n", FLT_MAX ); printf("Precision value: %d\n", FLT_DIG ); return 0; }
Programı derleyip çalıştırdığınızda aşağıdaki şekilde bir sonuç gösterir.
Storage size for float : 4
Minimum float positive value: 1.175494E-38
Maximum float positive value: 3.402823E+38
Precision value: 6
void Türü
Void türü hiçbir değerin mevcut olmadığını belirtir. 3 çeşit durumda kullanılır:
Sr.No. | Tür & Tanım |
1 | Fonksiyon void dönüş yapar
C de fonksiyon herhangi bir değer geri döndürrmüyorsa bu fonksiyonun türü void olarak tanımlanır. Örnek : void exit() |
2 | Fonksiyon argümanı olarak void
C de fonksiyon herhangi bir parametre almıyor olabilir. Parametre almayan bir fonksiyon void olıyor kabul edilir. Ör: int random_create(void); |
3 | Pointer’dan void’e
Pointer türünden ‘void *’ bir nesnenin tipini değil adresini belirtir. Ör: *mallocsize , herhangi bir veri türüne dönüştürülmüş pointer değeri döndürür. |