lifeacode yandex
C Dili Değişmezleri | C Dersleri | Lifeacode

C Dili Değişmezleri



C dili değişmezleri arasında, tamsayı, kayan noktalı sayı(gerçek sayı), karakter ve karakter dizisi değişmezleri bulunur.

 

Tamsayı Değişmezleri

C Dili tamsayı değişmezleri, program içerisinde ondalık, sekizli ya da on altılı sayılar şeklinde belirtilir. Derleyicinin tipine göre saklanır. 16 bit, 32 bit ya da 64 bit şeklinde muhafaza edilir. Aşağıda tamsayı değişmezi örnekleri verilmiştir. Örnekleri inceleyelim:

345

ondalık 345

0123

sekizli 123 = ondalık 83

093

geçersiz bir sayı

0x123

onaltılı 123 = ondalık 291

0XFF

onaltılı FF = ondalık 255

Sayının önünde bulunan 0 rakamı ardındaki rakamların sekizli (yani, 0-7) ve sayı önünde yer alan bir sıfır ile onun arkasından gelen küçük veya büyük x harfinin, geri kalan rakamların onaltılı (yani, 0-9, A-F veya a-f) olması gerektiğini göstermektedir.

Bir tamsayı değişmezi program içerisinde int veya long(uzun) biçiminde saklanır. Bir int değeri 16 bitlik ortamlarda 16 bit, 32 ve 64 bitlik ortamlarda ise 32 bittir. Bir long değeri ise 16 ve 32 bitlik ortamlarda 32 bit, 64 bitlik ortamlarda ise 64 bittir.

Tamsayı değişmezinin uzun formda saklanmasını zorlaştırmak için değişmezin arkasına büyük veya küçük L harfi gelir. Karışıklığı önlemek amacıyla “büyük L “ kullanımı önerilir.

Bazı tamsayı değişmezleri ve bunların 16, 32 ve 64 bitlik ortamlardaki boyları aşağıda verilmiştir:

Değişmez

16 bit
ortam

32 bit
ortam

64 bit
ortam

123

16 bit

32 bit

32 bit

123l

32 bit

32 bit

64 bit

123L

32 bit

32 bit

64 bit

077

16 bit

32 bit

32 bit

077L

32 bit

32 bit

64 bit

0xFFFF

16 bit

32 bit

32 bit

0xFFFFL

32 bit

32 bit

64 bit

0xFFFFF

32 bit

32 bit

32 bit

0xFFFFFFFF

32 bit

32 bit

32 bit

0xFFFFFFFFF

(hata)

64 bit

64 bit

Sekizli veya on altılı tamsayı değişmezi büyük bir bellek alanına yerleştirilirse sol tarafına sıfır alır. Bu tür değişmezlerin işaretsiz olduğu varsayılır. Ondalıklı bir tamsayı değişmezinin işaretsiz olarak işlenmesi için arkasına u veya U eki konur. Örnek verecek olursak 76000U değeri işaretsiz olarak işleme anılır.

Not: Yukarıdaki değişmezler kullanılan sisteme göre farklılık gösterebilir.

 

Kayan Noktalı Sayı Değişmezleri

C Dili Kayan noktalı sayı değişmezleri ya tamsayı ya da kesir kısmı arasına nokta konarak veya bilimsel gösterimle belirtilir. Aşağıda bazı örnekler vardır:

1.321

 

1.32E20

= 1.32×1020

1.32e20

= 1.32×1020 (büyük veya küçük harf olabilir)

132E18

= 1.32×1020

1.32E-20

= 1.32×10-20

Not: Değişmezin içinde herhangi bir boşluğun olmaması gerekmektedir.

Normalde, kayan noktalı değişmezler 8 baytta saklanır, Eğer kayan noktalı değişmezde f veya F eki varsa 4 baytta, eğer l veya L eki kullanılırsa 8, 12 veya 16 baytta, yani saklanır. Bu değerler sisteme göre farklılık gösterebilir.

 

Karakter Değişmezleri

C Dili Karakter değişmezi, ‘A’, ‘a’, ‘%’ şeklinde tırnak işaretleri arasına konulan tek bir karakterden veya tek bir karaktere eşdeğer olan bir kaçış sırasından meydana gelir. Bir ters bölü işareti ile bir harf veya rakam kullanılarak kaçış sırasını oluşturur. C dilinde bulunan kaçış sıraları aşağıda verilmiştir:

\xhh

onaltılı kodu hh olan karakter 

Ek olarak, aşağıda bazı karakter değişmezleri örnekleri vardır:

‘\0’

boş karakter

‘\”

bir karakter değişmezi olarak tek tırnak

‘\”‘

bir karakter değişmezi olarak çift tırnak

‘\\’

bir karakter değişmezi olarak ters bölü

‘\101’

sekizli kodu 101 olan karakter (ASCII sisteminde ‘A’ harfi)

‘\x041’

onaltılı kodu 41 olan karakter (ASCII sisteminde ‘A’ harfi)

Bir karakter değişmezinin tipi int tipindedir. Karakterler bir baytta (8 bit) olarak tutulur ve tamsayı gibi işlenir. Ancak signed veya unsigned oldukları veya kullanılan kodlama sisteminin C standardında olduğu belirtilmemiştir. Genel olarak ASCII kodlama sistemi tercih edilir. Normal karakterlerin işaretsiz oldukları bilinir. Gerek duyulursa programcı karakter dizisinin işaretli olup olmadığını belirtir.

 

Karakter Dizisi Değişmezleri

C Dili Karakter dizisi değişmezi: Çift tırnaklar içerisinde yazılmış herhangi bir sayıda karakterden veya yukarıda verdiğimiz kaçış sıralarından oluşur. Aşağıdaki önekleri dikkatle inceleyin.

""         boş karakter dizisi
"Merhaba"  7 karakterlik bir dizi
"Isminizi girin,\nveya ENTER\'a basin"   iki satırlık karakter dizisi

Karakter dizisi değişmezi bellekte saklanabilir. Bu tür durumlarda dizinin sonuna otomatik boş karakter (\0) ekleneceği için diziyi saklamak için kullanılan bayt sayısı dizi uzunluğundan bir fazla olur. Örnek verecek olursak, yukarıdaki örnekleri saklamak için kullanılan bellek miktarı sırasıyla 1, 8 ve 35 bayttır.

Bir program kodlanırken aralarına hiçbir işaret konulmayan ve arka arkaya yazılan dizi değişmezleri birleştirilir. Bu şekilde tek bir dizi haline gelir. Diziler bazı zamanlarda salt-okunur belleğe yerleştirilebilir ve bu durum o dizileri değiştirilemez hale getirir. Hatta birbirinin aynısı olan iki dizi aynı bellekte saklanabilir.

Sisteminizde kullanılan karakter kodlaması içerisinde bir karakter kullanabilirsiniz. ASCII-dışı karakterler için program farklı görüntülemeler gerçekleştirebilir. Örneğin ASCII karakter kümesinde olmayan Türkçe karakterler kodlama esnasında tercih edilmeyebilir.

 

Sonraki Satırdan Devam Etme

Bir ifade ya da bir karakter dizisi değişmezi programda tek bir satıra sığmayabilir ve bir sonraki satırdan devam etmeniz gerekebilir. Bu tür durumlarda satırın sonuna “\” işareti koyarak bir sonraki satırdan devam edebilirsiniz. Ayrıca iki satırda iki ayrı karakter dizisi şeklinde uzun bir bir karakter dizisi değişmezi yazabilirsiniz.

C dilinde yeni bir satır karakteri boşulk karakteri gibi algılanır ve bu şekilde işlem görür. Deyimler içerisinde birçok yerde boşluk karakteri kullanabileceğiniz için yukarıda bahsettiğimiz devam etme mekanizmasına gerek duymazsınız. Bu yöntem sadece ön işlemci emirleri için kullanılır.

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir