BİLİŞİM - BİLGİSAYAR - EĞİTİM
  Veri Tipleri
 

7. Diğer Veri Tipleri : Standart C dilinde şu ana kadar öğrendiğimiz veri tiplerine ek olarak aşağıdaki tipler mevcuttur.

 

7.1 C de Tanımlı Veri Tipleri :

 

Veri Tipleri

Tip

Aralık

Uzunluk(Byte)

unsigned char

char

enum

unsigned int

short int

int

unsigned long

long

float

double

long double

0 .. 255

-128 .. 127

-32,768 .. 32,767

0 .. 65,535

-32,768 .. 32,767

-32,768 .. 32,767

0 .. 4,294,967,295

-2,147,483,648 .. 2,147,483,647

3.4 * (10**-38) .. 3.4 * (10**+38)

1.7 * (10**-308) .. 1.7 * (10**+308)

3.4 * (10**-4932) .. 1.1 * (10**+4932)

1

1

2

2

2

2

4

4

4

8

10

 

printf işlevinde dönüşüm karakteriden önce

h short

u unsigned

l long integer

L long double

u dönüşüm karakteri unsigned

7.2 Kullanıcı Tanımlı Veri Tipleri

Enumerated (Sıralı, Numaralandırılmış) Tipler

Programın okunabilirliğini arttırmak için değerlerin sıralı bir küme olarak tanımlanması.

enum [tip_adi] { sabit adı [= değer],...} [değişken listesi];

değer : sabite otomatik atanan değer. Belirtilmez ise 0'dan başlar. Sıradaki sabit öncesinin bir fazlasına eşittir.

Belirtilen tipte tanımlı bir değişken ancak listedeki değerleri alır.

enum renk {BEYAZ, SARI, SIYAH};

tanımlaması ile oluşan enum renk tipinde BEYAZ 0, SARI 1 ve SIYAH 2 değerlerine eşit sabitlerdir.

Listedeki sabitler belirkeyici olmalıdır. Sayısal, karakter ve string bilgi yazılamaz.

enum renk = {"Beyaz", "Sari"}; X

enum renk = {0, 1, 2}; X

. İlişkisel işleçler tanımlıdır. Beyaz < Siyah, Sari > Beyaz

Bu tip değişkenler switch ve for deyimlerinde kontrol değişkeni olarak kullanılabilir.

Bu tipte bir değişken bilinen yapıda tanımlanır.

enum renk {BEYAZ, SARI, SIYAH};

enum renk a;

a değişkeni BEYAZ, SARI ve SIYAH değerlerinden birini alabilir.

Örnek 7.2.1: enum kullanımı.

main()

{

enum gunler {PAZAR,PAZARTESI,SALI,CARSAMBA,PERSEMBE,CUMA,CUMARTESI };

enum gunler gun;

clrscr();

for (gun = PAZAR; gun <= CUMARTESI; gun++)

printf("%d ", gun);

printf("n");

for (gun = PAZAR; gun <= CUMARTESI; gun++)

switch (gun) {

case PAZAR: printf("Pazar"); break;

case PAZARTESI: printf("Pazartesi"); break;

case SALI: printf("Sali"); break;

case CARSAMBA: printf("Carsamba"); break;

case PERSEMBE: printf("Persembe"); break;

case CUMA: printf("Cuma"); break;

case CUMARTESI: printf("Cumartesi"); break;

} /* Case */

}

 

Örnek 7.2.2: enum kullanımı.

main()

{

enum gunler {PAZAR,PAZARTESI,SALI,CARSAMBA,PERSEMBE,CUMA,CUMARTESI };

enum gunler gun;

char *gunad[]={"Pazar","Pazartesi","Sali","Carsamba",

"Persembe","Cuma","Cumartesi"};

clrscr();

for (gun = PAZAR; gun <= CUMARTESI; gun++)

printf("%sn", gunad[gun]);

}

Örnek 7.2.3: Sabitlere farkli değerler atama

enum renkler { sari = 4, mavi, kirmizi };

enum renkler i;

main()

{

i = mavi;

printf("%d n", i);

}

Ekrana 5 yazar.

Problem : Bu tip değişkenler doğrudan okunup yazılamazlar.

* Okumak ise yazmaya oranla biraz daha zordur. Okuma işlemi diğer standart tipler kullanılarak dolaylı bir şekilde gerçekleştirilir.

 
 
  Bugün 138 ziyaretçi (215 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol