Life Hunter
Lapis Toplayıcısı
- En iyi cevaplar
- 0
Merhaba, 10.dersimize geldik hepimizi kutlarım
Bu ders konumuz değişken tanımlama.
Değişken Tanımlama:
Değişken Türü Değişken ismi
C++ ta ilk önce değişken türünü tanımlıyoruz. Değişken türü neden önemli?
Oluşturacağımız değişken hafızada bir alan kaplayacaktır. Değişken türüne göre değişkenin hafıza alanı büyüyüp küçülebilir. O yüzden türe ihtiyaç duyar derleyici.
Daha sonra değişkenin ismini tanımlarız. Değişkenin ismi hafıza alanına vereceğimiz ismi temsil eder. Örneğin hafıza alanının adresi 45567 ise biz o hafıza alanının adresine "sayı" ismini veriyoruz, ve ya başka bir isim. Hafıza alanına vereceğiniz isim size kalmıştır.
Örnek:
int sayi1;
"int" Değişkenin tam sayı bir değişken olduğu anlamına gelir. "sayi1" de değişkenin ismi. int yani tamsayı değişkenler 32 bitlik sistemde 4 byte lık yer kaplarlar. Mesela short tipindeki değişkenler 2 byte kaplar. double tipindeki değişkenler ise 8 byte yer kaplar.(Bunlar 32 bitlik sistem için geçerlidir)
4 ile 2 sayılarını toplayan C++ kodunu yazalım
Öncelikle bu iki sayıyı hafızaya yerleştirmemiz gerekir. İki değişken tanımlayarak bu işlemi gerçekleştiricez.
Ardından "sonuc" adlı başka bir değişken oluşturup, "sonuc" değişkenin içerisine "sayi1" ile "sayi2" değişkenlerinin toplama işlemlerini yaptırıp, sonuc değişkenin içerisine atacağız.
Burada ne oldu? Burada önce sonuc adlı bir değişken oluşturduk. Sonra sonuc değişkenin içerisine sayi1 + sayi2 işlemini yaptırıp, çıkan sonucu "sonuc" değişkeninin içine attık. sayi1 değişkeni hangi değeri tutuyordu? 4 değilmi? sayi2 hangi değeri tutuyor? 2 değerini. 4 ile 2 toplanırsa 6 sonucunu elde ederiz. sayi1 + sayi2 işlemi yapılınca derleyici 6 sonucunu elde etti ve biz bulduğun sonucu "sonuc" değişkenini içine at dediğimiz için "sonuc" değişkenin değeri 6 oldu.
Değişken Tanımlama İle İlgili Notlar:
Diyelimki yukarıdaki gibi biz bir değişken tanımladık ama direk değer vermedik. Eğer o değişkenin bulunduğu hafıza hücresinde daha önceden bir değer varsa değişken o değeri alır. Örneğin sayi değişkeni 5678 no lu hafıza hücresine ait. 5678 no lu hafıza hücresinde daha önceden 10 var ise, sayi değişkeninin değeride 10 olur. Ama bir değer atarsanız bu durum değişir tabii ki.
C++ ilk değer atama işlemini yapmaz. Yani yukarıdaki gibi bir değişken yaratıp değer vermezseniz C++ o değişkene değer atamaz. Çünkü bir değer atamak işlem gerektiriyor ve uğraştığınız veri sayısı büyük ise değer atama işlemi makineyi yavaşlatır. O yüzden C++ ta ilk değer atama işlemi yoktur.
Ama C# ve ya Java gibi dillerde değişkenlere ilk değer olarak 0 değeri atanır.
Değişken isimlerinin başına sayı koyamazsınız. + ve ya - gibi simgeler koyamazsınız. Değişken isimlerinin karakter ile başlaması gerekir. Sadece alt tire simgesini destekler derleyici fakat pek de tavsiye etmem. Özellikle iki alt tire simgesini hiç tavsiye etmem çünkü derleyicinin kullandığı bir yapıdır alt tire ve derleyicinin değişkenleri ile çakışma riski vardır. Değişken tanımlarken olabildiğince karakter ile başlayın ve anlamlı isimler koymaya çalışın.
Peki değişken tanımladığımız zaman arka planda neler olur?
Şu grafiği inceleyelim.
Biz int sayi1 = 5 dediğimiz zaman, değişkenimiz int türünden olduğu için ve int hafızada 4 byte kapladığı için derleyici 4 byte lık bir hafıza alanı arar. Alanı bulduktan sonra, o alanı etiketliyor.Bu 4 byte lık alanın adı sayi1 diyor. Tabi bu etiketten kastım bir tablo tutuyor. sayi1 değişkeni 1 numaralı adresten başlayıp, 4 numaralı adrese kadar 4 byte yer kaplıyor diyor derleyici. Biz sayi1 değişkenine 4 değerini atadığımız için, Derleyici ek bir kod yazıp, bizim için ayırdığı 4 byte lık hafıza hücresinin içerisine 4 sayısını atıyor.
Mantık hep böyle işler değer atamada. Siz int sayi2 = 2; diye bir komut yazarsanız, Derleyici ilk başta 4 byte lık bir hafıza alanı ayırır bizim için.(int 4 byte olduğu için)
Sonra ayırdığı hafıza alanının ismine sayi2 ismini verir. Siz 2 değerini verdiğiniz içinde 4 byte lık hafıza alanının içine 2 değerini atar.
tabii ki biz bu hafıza alanlara etiketler ile erişiyoruz. Halbuki derleyici arka planda bu hafıza alanlarına erişim için gerekli olan makine kodlarını yazıyor ve bu makine kodlarında sayi1 diye bir isim yok. Direk adres ile erişiliyor makine kodunda. Tabi biz onunla ilgilenmiyoruz biz isimler ile erişiyoruz.
Bu ders bu kadar, Daha anlatılacak şeyler var ama tek bir derse sığdırmak iyi olmazdı
Diğer ders devam edeceğiz.
Değişken Tanımlama:
Değişken Türü Değişken ismi
C++ ta ilk önce değişken türünü tanımlıyoruz. Değişken türü neden önemli?
Oluşturacağımız değişken hafızada bir alan kaplayacaktır. Değişken türüne göre değişkenin hafıza alanı büyüyüp küçülebilir. O yüzden türe ihtiyaç duyar derleyici.
Daha sonra değişkenin ismini tanımlarız. Değişkenin ismi hafıza alanına vereceğimiz ismi temsil eder. Örneğin hafıza alanının adresi 45567 ise biz o hafıza alanının adresine "sayı" ismini veriyoruz, ve ya başka bir isim. Hafıza alanına vereceğiniz isim size kalmıştır.
Örnek:
int sayi1;
"int" Değişkenin tam sayı bir değişken olduğu anlamına gelir. "sayi1" de değişkenin ismi. int yani tamsayı değişkenler 32 bitlik sistemde 4 byte lık yer kaplarlar. Mesela short tipindeki değişkenler 2 byte kaplar. double tipindeki değişkenler ise 8 byte yer kaplar.(Bunlar 32 bitlik sistem için geçerlidir)
4 ile 2 sayılarını toplayan C++ kodunu yazalım
Öncelikle bu iki sayıyı hafızaya yerleştirmemiz gerekir. İki değişken tanımlayarak bu işlemi gerçekleştiricez.
Kod:
int sayi1 = 4;
int sayi2 = 2;
Kod:
int sonuc = sayi1 + sayi2;
Değişken Tanımlama İle İlgili Notlar:
Kod:
int sayi;
C++ ilk değer atama işlemini yapmaz. Yani yukarıdaki gibi bir değişken yaratıp değer vermezseniz C++ o değişkene değer atamaz. Çünkü bir değer atamak işlem gerektiriyor ve uğraştığınız veri sayısı büyük ise değer atama işlemi makineyi yavaşlatır. O yüzden C++ ta ilk değer atama işlemi yoktur.
Ama C# ve ya Java gibi dillerde değişkenlere ilk değer olarak 0 değeri atanır.
Değişken isimlerinin başına sayı koyamazsınız. + ve ya - gibi simgeler koyamazsınız. Değişken isimlerinin karakter ile başlaması gerekir. Sadece alt tire simgesini destekler derleyici fakat pek de tavsiye etmem. Özellikle iki alt tire simgesini hiç tavsiye etmem çünkü derleyicinin kullandığı bir yapıdır alt tire ve derleyicinin değişkenleri ile çakışma riski vardır. Değişken tanımlarken olabildiğince karakter ile başlayın ve anlamlı isimler koymaya çalışın.
Peki değişken tanımladığımız zaman arka planda neler olur?
Linki görebilmek için üye olmanız gerekiyor.
Giriş yap veya üye ol.
Şu grafiği inceleyelim.
Biz int sayi1 = 5 dediğimiz zaman, değişkenimiz int türünden olduğu için ve int hafızada 4 byte kapladığı için derleyici 4 byte lık bir hafıza alanı arar. Alanı bulduktan sonra, o alanı etiketliyor.Bu 4 byte lık alanın adı sayi1 diyor. Tabi bu etiketten kastım bir tablo tutuyor. sayi1 değişkeni 1 numaralı adresten başlayıp, 4 numaralı adrese kadar 4 byte yer kaplıyor diyor derleyici. Biz sayi1 değişkenine 4 değerini atadığımız için, Derleyici ek bir kod yazıp, bizim için ayırdığı 4 byte lık hafıza hücresinin içerisine 4 sayısını atıyor.
Mantık hep böyle işler değer atamada. Siz int sayi2 = 2; diye bir komut yazarsanız, Derleyici ilk başta 4 byte lık bir hafıza alanı ayırır bizim için.(int 4 byte olduğu için)
Sonra ayırdığı hafıza alanının ismine sayi2 ismini verir. Siz 2 değerini verdiğiniz içinde 4 byte lık hafıza alanının içine 2 değerini atar.
tabii ki biz bu hafıza alanlara etiketler ile erişiyoruz. Halbuki derleyici arka planda bu hafıza alanlarına erişim için gerekli olan makine kodlarını yazıyor ve bu makine kodlarında sayi1 diye bir isim yok. Direk adres ile erişiliyor makine kodunda. Tabi biz onunla ilgilenmiyoruz biz isimler ile erişiyoruz.
Bu ders bu kadar, Daha anlatılacak şeyler var ama tek bir derse sığdırmak iyi olmazdı