20 Nisan 2020

#3 C Dili: Değişkenler, Sabitler ve Değişmezler

C programlama dili kullanılarak yazılan kodların içerisindeki parametreler değişkenler, sabitler ve değişmezler olmak üzere sembolik adlar ile isimlendirilir. Değişkenler, sabitler ve bilgisayarın belleğine tanıtılırken hangi veri türünden oldukları da kendi değerleri ile birlikte aktarılır. Bu türler tamsayı, ondalıklı sayı, karakter gibi türlerdir. Bu şekilde türlerine ayrılması sayesinde her verinin bellekte ne kadar yer kaplayacağı hesaplanabilir ve kullanıcı tarafından bilinebilmektedir.

Değişkenler

Yazılan programdaki verilerin bellekte tutulabilmesi için değişkenler tanımlanır. Tanımlanan değişkenlerin ismi özenle seçilmelidir. Diğer tanımlayıcılarla aynı isimde olmamalıdır.

İsminden de anlaşılacağı üzere değişken olarak tanımlanan bir verinin değeri sonradan değiştirilebilir. Bu durumda değişkenin değeri bellekte yeni değeri ile değiştirilmektedir.

Bir değişkenin programda kullanılabilmesi için program içerisinde değişkenin programa bildirilmesi gerekmektedir. Bildirme işlemi yapılırken değişkenin veri türü, değeri ve tanımlayıcı ismi yazılmalıdır.

#include<stdio.h>

int main(){
    int x = 5; 
    //tamsayi tanımlandı
    float y = 4.7;
    //ondalikli sayi tanımlandı
    char z = 'h';
    //karakter tanımlandı

    return 0;
}

Yukarıdaki kodda örnek olarak x, y ve z tanımlayıcı isminde 3 farklı değişken tanımlanmıştır. Tanımlanan bu 3 değişken farklı veri türlerine aittir.

Değişkenler tanımlanırken bazı hususlara dikkat edilmelidir. Bu hususlar aşağıdaki gibidir.

  • Tanımlayıcı adlandırılırken harf, sayı ve alt çizgi kullanılmalıdır.
  • C dili tarafından anahtar kelime kabul edilmiş ifadeler tanımlayıcı ismi olarak kullanılamaz.
  • Tanımlayıcı adının uzunluğu belirsizdir lakin 31 karakterden uzun tanımlayıcılar bazı derleyicilerde sorunlara yol açabilmektedir.

Bu kurallara bir önceki anahtar kelimeler ve tanımlayıcılar yazımda da değinmiştim.

Değişmezler

Değişmezler program boyunca değerlerinin değiştirilemediği verilerdir. 5, 7.5, 159 gibi sayılar ve ‘a’, ‘z’ gibi karakterler değişmezlere en güzel örneklerdir. 5 tamsayısının değeri 5′ tir, ‘a’ karakteri ‘a’ karakteridir ve bu asla değiştirilemez. Değişmezler 5 başlık altında sınıflandırılmaktadır.

Tamsayılar (integers)

Tamsayılar matemtaikten de bilindiği üzere ondalıklı kısmı olmayan sayılardır. C programlama dilinde tamsayılar 3 farklı yol ile bildirilmektedir. Bunlar 10′ luk taban, 8′ lik taban ve 16′ lık tabandır.


  • Decimal (10′ luk Taban)

1, 5, 7, 11, -52, 68, 1064 gibi sayılar 10′ luk tabanda yazılan tamsayılara örnektir.

  • Octal (8′ lik Taban)

023, 027, 062 gibi tamsayılar octal sayılara yani 8′ lik tabanda yazılan sayılara örnektir. Bu sayılar 0 ön eki ile başlar.

  • Hexadecimal (16′ lık Taban)

0x2b, 0x526, 0x7f gibi sayılar 16′ lık tabanda yazılan hexadecimal tamsayılara örnektir. Bu tamsayılar yazılırken 0x ön eki kullanılır.


#include<stdio.h>

int main(){
    int sayi1 = 10;
    //on tamsayisi tanimlandi
    int sayi2 = 0123;
    //8btabaninda 123 sayisi taninlandi
    int sayi3 = 0x571;
    //16 tabanında 571 sayisi tanimlandi

    return 0;
}

Yukarıdaki örnek kodda da sayi1, sayi2 ve sayi3 adlı tamsayı veri türünde değişkenler tanımlanmıştır. Bu değişkenler farklı sayı tabanlarına aittir. Değişkenlerin değerleri ise değişmez türdedir..

Ondalıklı Sayılar (float – point)

Ondalıklı sayılar matemt,kte olduğu gibi kesirli olan sayılardır. Ondalıklı sayılar tanımlanırken mühendislik sembolü olan E sembolü işlem kolaylığını sağlayabilmek için ihtiyaç halinde kullanılmaktadır.

#include<stdio.h>

int main(){
    float sayi1 = 10.5;
    //on bucuk
    double sayi2 = 0.001258;
    //0 tam yuz binde bin iki yüz elli sekiz
    float sayi3 = 0.575E-7;
    //(0 tam binde bes yuz yetmis bes) * on üzeri eksi yedi

    return 0;
}

Yukarıdaki kodda örnek olarak 3 farklı ondalıklı sayı sayi1, sayi2 ve sayi3 değişken isimleri ile tanımlanmıştır.

Karakterler (characters)

Karakter olan değişmezler oluşturulurken bir karakterin tırnak işareti içerisine alınması yeterlidir. ‘a’, ‘h’, ‘i’, ‘f’ gibi harfler tırnak işareti içerisine alınarak programa karakter olarak bildirilirler.

#include<stdio.h>

int main(){
    char harf1 = 'h';
    //h harfi
    char harf2 = ' ';
    //bosluk karakteri
    
    return 0;
}

Yukarıdaki kodda örnek olarak 2 farklı karakter harf1 ve harf2 değişken isimleri ile tanımlanmıştır.

Kaçış Dizileri (escape sequences)

Kaçış dizileri özel anlama gelen karakterlerdir. Bir C programı yazılırken kod içerisine yazılamayan durumlarda keçış dizilerinin kullanımı tercih edilir. Birbirinden farklı anlamları olan kaçış dizileri aşağıdaki tabloda anlamlarıyla beraber mevcuttur.

Kaçış DizisiAnlamı
\bgeri boşluk
\fform besleme
\nyeni satır
\rvar olan satırın başına döner
\tyatayda boşluk bırakır
\vdikeyde boşluk bırakır
\\ters yan çizgi işareti (\)
\’kesme işareti (‘)
\”çift kesme işareti (\”)
\?soru işareti (\?)
\0boş karakter

Yukarıdaki tabloda C programlama dilinde kullanılan kaçış dizileri verilmiştir. Bu kaçış dizileri çoğu programcı tarafından sıklıkla kullanılmaktadır.

Karakter Dizileri (strings)

Karakter dizileri birden fazla karakter ile oluşturulan dizilerdir. Kelimeler karakter dizilerinin en güzel örneğidir. Karakter dizileri oluşturulurken çift tırnak işareti (“) içerisine karakterler yazılarak tanımlanır.

#include<stdio.h>

int main(){
    char kelime1[6] = "hamit";
    //5 harfli hamit karkater dizisi tanimlandi
    char kelime2[2] = " ";
    //bosluk karakteri tanimlandi
    char cumle[25] = "Turk ogun, calis, guven!";
    //24 karakterli bir cumle tanimlandi
    
    return 0;
}

Yukarıdaki örnek kodda 3 farklı karakter dizisi tanımlanmıştır. Tanımlanma esnasında karakter sayısının 1 fazlası baz alınarak tanımlama yapılmıştır. Bunun sebebi karakter dizisinin bittiğini programa bildiren null karakteridir. Yine bu detaya ilerleyen yazılarımda değineceğim.

Sabitler

Program yazılırken tanımlanan değişkenler program esnasında programcı tarafından değiştirilebilir veya programda öngörülemeyen bir kod hatası oluştuğunda programcıdan habersiz değişkenin değeri değişebilmektedir. Bu gibi durumların önüne geçilmesi için sabitler kullanılmaktadır.

Sabitler tanımlandıktan sonra programın devamında değiştirilemezler ancak ve ancak tanımlandıkları satırın programcı tarafından değiştirilmesi ile tanımlanan sabitin değeri değiştirilebilir.

Sabitler tanımlanırken constant kelimesinin kısaltması olan const anahtar kelimesi kullanılarak tanımlanırlar.

#include<stdio.h>

int main(){
    const int sayi = 5;
    //5 degerinde "sayi" isimli bir sabit tanimlandi
    const float PI = 3.14;
    //3.14 degerinde "PI" isimli ondalıklı bir sabit tanimlandi 
    const char kelime = 'h';
    //"h" karakterli bir sabit tanimlandi
    
    return 0;
}

Yukarıdaki örnek kodda hem sayı hem de karakter sabiti olmak üzere 3 farklı sabit tanımlanmıştır. Sabitler tanımlandıktan sonra yazılan kodun ilerleyen kısımlarında çağırılan sabitler tanımlandıkları değerleri döndürmektedirler.

Ek olarak belirtmek isterim ki #define komutu ile de sabitler tanımlanabilmektedir. const float pi = 3.14; komutu ile #define PI 3.14 komutu aynı anlama gelmektedir. Bu durumu ilerleyen yazılarımda ele alacağım.

Yorum bölümünden tüm sorularınızı bana iletebilirsiniz.

Çalışmalarınızda başarılar dilerim.

Hamit Can Dinç.

Share

Hamit Can Dinç

Yıldız Teknik Üniversitesinde Elektrik Mühendisliği öğrencisi. Araştırma ve geliştirme odaklı projelerde yer almayı sever.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir