IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 13 Kasım 2009, 11:54   #1
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Değişmezler




C dilinde, tamsayı, kayan noktalı, yani gerçek sayı, karakter ve karakter dizisi değişmezleri bulunur.
Tamsayı Değişmezleri

Tamsayı değişmezleri, program içinde, ondalık, sekizli veya onaltılı sayılar şeklinde belirtilebilirler ve derleyicinin tipine göre, 16, 32 veya 64 bit şeklinde saklanırlar. Aşağıdaki örneklerde bazı tamsayı değişmezleri görülmektedir:
123ondalık 1230123sekizli 123 = ondalık 83083geçersiz bir sayı0x123onaltılı 123 = ondalık 2910XFFonaltılı FF = ondalık 255
Sayının önündeki bir sıfır rakamının, geri kalan rakamların sekizli (yani, 0-7) ve sayı önündeki bir sıfırla 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österdiğine dikkat edin. Sayının program içindeki gösterimi ne olursa olsun, makine içinde her zaman bitler halinde ikili sistemde saklanır; ancak bu durum genelde programcıyı ilgilendirmez.
Bir tamsayı değişmezi, eğer değeri sığıyorsa (o sistem için doğal boy olan) int biçiminde, yoksa long (uzun) biçiminde saklanır. Bir int için doğal olan boy, 16 bitlik ortamlarda 16 bit, 32 ve 64 bitlik ortamlarda ise 32 bittir. Bir long ise 16 ve 32 bitlik ortamlarda 32 bit, 64 bitlik ortamlarda ise 64 bittir.
Tamsayı bir değişmezin uzun formda saklanmasını zorlamak için değişmezin arkasına l veya L harfi eklenmelidir. 1 sayısı ile karıştırılmaması için, küçük l yerine büyük L harfinin kullanılması önerilir.
Bazı tamsayı değişmezleri ve bunların 16, 32 ve 64 bitlik ortamlardaki boyları aşağıda verilmiştir:
Değişmez16 bit
ortam32 bit
ortam64 bit
ortam12316 bit32 bit32 bit123l32 bit32 bit64 bit123L32 bit32 bit64 bit07716 bit32 bit32 bit077L32 bit32 bit64 bit0xFFFF16 bit32 bit32 bit0xFFFFL32 bit32 bit64 bit0xFFFFF32 bit32 bit32 bit0xFFFFFFFF32 bit32 bit32 bit0xFFFFFFFFF(hata)64 bit64 bit
32 bit ortamın son örneğinde—özellikle 32 bit ortamlar için önem taşıyan—64 bitlik long long (uzun uzun tamsayı) biçimi kullanılmıştır. Daha kısa bir tamsayı değişmezinin long long biçimde saklanmasını sağlamak için ll veya LL eki kullanılabilir.
Bir sekizli veya onaltılı tamsayı değişmezi, daha büyük bir bellek alanına yerleştirildiği zaman, soluna sıfır konur. Yani böyle değişmezlerin işaretsiz olduğu varsayılır. Ondalıklı bir tamsayı değişmezinin işaretsiz olarak işlem görmesini sağlamak için arkasına u veya U eki konulmalıdır, örneğin 65000U.
Yukarıdaki tabloda verilen bilgilerin kullandığımız sistemler için genel olarak geçerli olduğunu, ancak gerçeklemeden gerçeklemeye farklılık göstereceğini unutmayın. Daha detaylı bilgiler kitabın sonuna doğru verilmektedir.
Kayan Noktalı Sayı Değişmezleri

Kayan noktalı sayı değişmezleri ya tamsayı ile kesir kısmı arasına nokta konarak yada bilimsel gösterimde belirtilirler. İkinci yöntem, genelde, çok büyük veya çok küçük sayılar için kullanılır. Aşağıda bazı örnekler vardır:
1.1231.23E20= 1.23×10201.23e20= 1.23×1020 (büyük veya küçük harf olabilir)123E18= 1.23×10201.23E-20= 1.23×10-20
Değişmezin içinde herhangi bir boşluğun olmaması gerektiğine dikkat edin.
Normalde, kayan noktalı değişmezler 8 baytta, yani double (çift) duyarlıkta, saklanır. Eğer kayan noktalı değişmezde f veya F eki bulunuyorsa, o zaman 4 baytta, yani tek duyarlıkta; eğer l veya L eki kulanılırsa, o zaman gerçeklemeye göre 8, 12 veya 16 baytta, yani long double (uzun çift veya dörtlü) duyarlıkta saklanır. Bu değerler gerçeklemeden gerçeklemeye farklılık gösterebilir.
Karakter Değişmezleri

Bir karakter değişmezi, 'A', 'a', '%' gibi tırnak işaretleri arasına konulan tek bir karakter veya tek bir karaktere eşdeğer olan bir kaçış sırasıdır. Bir kaçış sırası bir ters bölü işareti ile bir harf veya rakamlardan oluşur. C dilinde sadece şu kaçış sıraları kullanılır:
Kaçış sırasıAnlamı\nyeni satır\bgeri alma\rsatırbaşı\tdurak (tab)\fsayfa ilerletme\vdikey durak\azil\'tek tırnak\"çift tırnak\?soru işareti\\ters bölü\dddsekizli kodu ddd (1, 2 veya 3 adet sekizli rakam) olan karakter ([Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]’ya bakınız)\xhhonaltılı kodu hh (herhangi bir sayıda onaltılı rakam) olan karakter ([Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]’ya bakınız)
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’tir. Karakterler ise tipik olarak bir baytta (8 bit) saklanır ve tamsayı gibi işlem görürler. Ancak signed (işaretli) veya unsigned (işaretsiz) oldukları veya kullanılan kodlama sistemi C Standardında belirtilmemiştir. Bizim sistemlerimizde, ASCII kodlama sistemi kullanılır. Normal karakterlerin (örneğin, sistemimizdeki 7 bitlik ASCII karakterlerinin) işaretsiz oldukları garanti edilmiştir. Gerektiğinde, bir karakter değişkeninin işaretli olup olmadığı programcı tarafından açıkça belirtilmelidir.
Karakter Dizisi Değişmezleri

Bir karakter dizisi değişmezi çift tırnaklar arasında yazılmış herhangi bir sayıda karakter veya yukarıda listesi verilmiş kaçış sırasından oluşur. İşte bazı örnekler. Son örnekteki, yeni satır (\n) ve tek tırnak (\') kaçış sıralarına dikkat edin.
"" boş karakter dizisi
"Merhaba" 7 karakterlik bir karakter dizisi
"Isminizi girin,\nveya ENTER\'a basin" iki satırdan oluşan bir karakter dizisi
Bir karakter dizisi değişmezi bellekte saklandığı zaman, dizinin sonuna otomatik olarak boş karakter (\0) eklenir; bundan dolayı diziyi saklamak için kullanılan bayt sayısı dizinin uzunluğundan bir fazladır. Örneğin, yukarıdaki örnekleri saklamak için kullanılan bellek miktarı sırasıyla 1, 8 ve 35 bayttır.
Bir program içinde, aralarına hiçbir işaret koymadan peşpeşe yazılan karakter dizisi değişmezleri birleştirilir ve tek bir dizi değişmezi olarak alınırlar. Diziler, bazı sistemlerde, salt-okunur belleğe yerleştirilebilirler, bu da onları değiştirilemez kılabilir. Ayrıca, birbirine tıpatıp benzeyen iki veya daha fazla karakter dizisi aynı bellek bölgesinde saklanabilir.
Sisteminizde kullanılan karakter kodlamasında bulunan herhangi bir karakteri kullanabilirsiniz; ancak, ASCII-dışı karakterler için program gerçeklemeden gerçeklemeye farklı şeyler görüntüleyebilir. Örneğin, sistemler arasındaki uyumsuzluklardan kaçınmak için, bu kitaptaki karakter dizisi değişmez örneklerinde ASCII karakter kümesinde olmayan Türkçe karakterler kullanılmamıştır.
Bir Sonraki Satıra Devam Etme

Bir deyim veya karakter dizisi değişmezi programın tek bir satırına sığmıyorsa ve bir sonraki satıra devam etmek gerekiyorsa, satırın sonuna ters bölü (\) işareti konup bir sonraki satıra devam edilebilir. Ayrıca, uzun bir karakter dizisi değişmezi iki satırda iki ayrı karakter dizisi şeklinde de yazılabilir.
C dilinde yeni satır karakteri boşluk karakteri gibi işlem gördüğünden ve deyimler içinde birçok yerde boşluk karakterleri kullanabileceğiniz için, yukarıda bahsedilen devam etme mekanizmasına genelde gerek duyulmaz. Sadece önişlemci emirlerinde bu yöntemi kullanmanız gerekir.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Alt 13 Kasım 2009, 11:55   #2
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Değişmezler




Temel Veri Tipleri Ve Tanımlar


Bir değişken ismi, değişkenin alacağı değerlerin türü ve işlevini yansıtacak şekilde dikkatlice seçilen bir tanıtıcı sözcüktür. Genelde, kalan_gunler veya kalanGunler şeklinde bir değişken ismi x132 gibi bir isme tercih edilmelidir. Değişken isimlerinde büyük harfler yerine küçük harflerin kullanılması alışılagelmiştir.
Bir C programında, kullanılmadan önce, tüm değişken ve fonksiyonların tanımı veya bildirimi yapılmalıdır. Temel veri tiplerinin, yani tamsayı, kayan noktalı sayılar ve karakterlerin bildiriminde kullanılan anahtar sözcükler şunlardır:
inttamsayısigned, unsignedişaretli veya işaretsiz tamsayılarshort, long, long longkısa veya uzun tamsayılarfloat, double, long doubletek, çift veya dörtlü duyarlıklı kayan noktalı sayılarcharkarakter
Karakter dizisi tanımlamak için bir anahtar sözcük olmadığına dikkat edin; bunun için elemanları karakter olan normal diziler kullanılır.
Bir tanım, bir tip ismi ile tanımlanmakta olan nesnelerin virgülle ayrılmış listesinden oluşur ve bir noktalı virgül ile sona erer. Aşağıda birkaç örnek tanım gösterilmiştir:
int x;int x1, y1, z1;long d, d1;char c;char c1, c2, c3;float a;float a1, a2, a3;int u[3];float k[10*20]
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
on iki tanımda, tek boyutlu ve üç elemanlı bir tamsayı dizisi ile tek boyutlu ve 200 elemanlı kayan noktalı sayılardan oluşan bir dizi tanımlanmıştır. Dizinin boyunun derleme esnasında hesaplanabilen değişmez bir ifade olduğuna dikkat edin.
Aşağıda görüldüğü gibi, değişkenler tanımlandıkları zaman ilk değerleri de verilebilir:
int x = 0;int x1 = 10, x2 = 20, x3 = 30, x4 = 60 * 60; /* ilk deger degismez bir ifadedir */char c1 = 'a', c2 = 'z';Buna ilkleme diyoruz. İlk değer olarak bir ifadenin de yazılabileceğine dikkat edin. Tanımlanan değişkenlerin ilklenmesi iyi bir alışkanlıktır.
İsimlendirilmiş değişmezler, yani değerleri değiştirilemeyecek olan değişkenler, const tip niteleyicisi kullanılarak tanımlanırlar:

const int x = 100;const char ys = '\n';const float a = 123.45;const double pi = 3.1415926535897932384626433832795;Bu tip değişmez “değişken”lerin const ile tanımlanmasının en azından iki avantajı vardır:
  1. Programcı yanlışlıkla bu tip bir değişkene atama yapmaya kalkar veya değerini değiştirebilecek bir şekilde kullanmaya kalkarsa, derleyici onu uyaracaktır.
  2. Çok kullanıcılı sistemlerde bu tip değişkenlerin ortak ve değiştirilemez bir bellek kesimine yüklenmesi sağlanabilir.
Aynı anda başka bir süreç (program) tarafından kullanılan veya değiştirilebilen değişkenlerin, derleyicinin olası bir eniyileme yapmasını engellemek için, volatile tip niteleyicisi kullanılarak tanımlanması gerekmektedir. Örneğin, çok kullanıcılı ortamlarda iki değişik süreç tarafından ortak kullanılan bir değişkenin volatile tanımlanması gerekir.
Tanımlanmış bir değişken, bir deyim içinde ismi verilerek anılır. Dizi elemanlarına ulaşmak için çeşitli yollar olmasına rağmen, çoğu zaman dizi isminin arkasına köşeli parantezler içinde indis belirtilerek kullanılırlar. Eleman sayısı BOY olan bir dizi için indisin alabileceği değerler 0’dan BOY-1’e kadar değişir. Yani, yukarıda tanımlanmış olan u tamsayı dizisinin elemanları u[0], u[1] veya u[2] şeklinde kullanılabilir. İndisin her zaman değişmez bir tamsayı olmasına gerek yoktur; genelde bir ifade olur. Yani, u[x+5] geçerli bir kullanımdır. Doğal olarak, eğer “x+5” ifadesinin değeri 0, 1 veya 2 değilse, beklenmeyen sonuçlar elde edilebilir. Bu tip kullanımları kontrol altında tutmak tamamen programcının sorumluluğundadır.
Değişik tiplerde tanımlanmış değişkenler için, mevcut derleyiciler tarafından tipik olarak ayrılan bellek miktarı ile alt ve üst limit değerleri aşağıdaki tabloda verilmiştir. Tip tanımında parantez içine yazılmış kısmın belirtilmesine gerek yoktur, örneğin signed short int ile short aynı anlama gelir.
Tip tanımı16 bit
ortam32 bit
ortam64 bit
ortamchar111signed char1s1s1sunsigned char1u1u1u(signed) short (int)2s2s2s(signed) int veya signed (int)2s4s4s(signed) long (int)4s4s8s(signed) long long (int)--8s8sunsigned short (int)2u2u2uunsigned (int)2u4u4uunsigned long (int)4u4u8uunsigned long long (int)--8u8ufloat4f4f4fdouble8f8f8flong double8f12f/16f16f1 : Bir bayt, (gerçeklemeye bağlı olarak) -127..127 veya 0..255.
1s : Bir bayt, -127..127.
1u : Bir bayt, 0..255.
2s : İki bayt, -215..215-1 = -32768..32767.
2u : İki bayt, 0..216-1 = 0..65535.
4s : Dört bayt, -231..231-1 = -2147483648..2147483647.
4u : Dört bayt, 0..232-1 = 0..4294967295.
8s : Sekiz bayt, -263..263-1 = -9223372036854775808..9223372036854775807.
8u : Sekiz bayt, 0..264-1 = 0..18446744073709551615.
4f : Dört bayt, -1038..-10-38, 0, 10-38..1038 (yaklaşık 6 ondalık rakam duyarlık).
8f : Sekiz bayt, -10308..-10-308, 0, 10-308..10308 (yaklaşık 15 ondalık rakam duyarlık).
12f : Oniki bayt, -104932..-10-4932, 0, 10-4932..104932 (yaklaşık 18 ondalık rakam duyarlık).
16f : Onaltı bayt, -104932..-10-4932, 0, 10-4932..104932 (yaklaşık 33 ondalık rakam duyarlık).

Tamsayılar ve kayan noktalı sayılar için her bilgisayarda farklı olabilecek bu özellikler, tam olarak limits.h ve float.h adlı başlık dosyalarında tanımlanmıştır. Birtakım varsayımlar yapmak yerine, bu başlık dosyalarında tanımlanmış bulunan değişmezlerin kullanılması özellikle önerilir. Başlık dosyaları için bir sonraki kısma ve ayrıca [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]’e bakınız.)

 
Alıntı ile Cevapla

Cevapla

Etiketler
değişmezler, degismezler


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
İnsanlar değişmezler. Kalemzede Felsefe 0 08 Nisan 2012 10:25