İçindekiler

C Programlama Dilinde Değişkenler
Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına ihtiyacı vardır. İşte değişkenler bu bellek adreslerine verilen isimlerdir.

Değişkenler bellekte bilginin saklandığı hücreler verilmiş sembolik adlardır. Her değişkenin tuttuğu değerin nasıl bir veri olduğunu gösteren bir tipi vardır. C dilinde temelde birkaç tane değişken tipi vardır.

C gibi yüksek seviyeli programlama dilleri programcıyı bellek adreslerinin karmaşasından kurtararak değişkenler aracılığıyla bellek alanlarına takma isimler vermemize olanak tanırlar. Bu sayede hexadecimal olarak bilinen 16'lık sayı tabanında tutulan bellek adreslerini bilme zorunluluğumuz ortadan kalkar ve kodlama süresince ihtiyaç duyulan bellek alanlarına kendi adlandırdığımız isimlerle erişebilme kolaylığına sahip oluruz.

Değişken isimleri verirken bazı kurallara uymak gereklidir.

  • Değişken adları en fazla 32 karakterden oluşabilir.
  • 32 karakterden uzun değişken adları ilk 32 karakteri değerlendirilir.
  • Geriye kalan karakterler işleme tabi tutulmaz.
  • Değişken adları ingiliz alfabesinde bulunan karakterler (A-Z) veya (a-z) yada rakamlar (0-9) ile yazılmalıdır.
  • Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz.
  • Değişken adları herhangi bir rakam ile başlayamaz.
  • İlk karakter bir harf olamalıdır. Sonrakiler rakamlardan oluşabilir.
  • Daha önce  değişken adı olarak kullanılmış bir isim prg içerisinde başka bir değişkene verilemez.
  • C dili büyük ve küçük harf ayrımı olan bir dildir. sayi, Sayi ve SAYI kelimeleri 3 farklı değişkene isim olarak verilebilir.
  • ANSI C 'nin anahtar kelimeleri (key words) değişken ismi olarak kullanılamaz.

C Programlama Değişkenler

Kullanılan makine ve derleyiciye bağlı olarak, C dilinin özel durumundan dolayı başka anahtar sözcükler de olabilir. Bunlar genelde altçizgi karakteriyle başlarlar.


Değişkenlerin Genel Yazım Formatı

C Programlama Değişkenler

Özel Anahtar Kelimeler : static ve const gibi çeşitli anahtar kelimeleri içerir. Değişken yazılırken belirtilmesi zorunluluğu yoktur. Özel bir durum sözkonusu değilse kullanılmaz.

Değişken Tipi : C Programlama dili type-safe  bir dildir. Bu nedenle kodlamada tanımlanacak her değişkenin tipinin belirtilmesi zorunlu kılınmıştır. Bu tipler int ve double gibi C dilinin sağladığı veri tipleri olacağı gibi programcının struct kullanarak kendi oluşturacağı veri tipleride olabilir. Değişken tipi belirleme zorunludur.

Değişken Adı : Programcının değişkenlere vereceği tek kelimeden oluşan adlardır. Zorunludur.

Değişlenin Değeri : Değişkene atanan değeri ifade eder. Ve mutlak surette değişken tipiyle uyumlu olması gereklidir. Örneğin bir tamsayı değişkenine karakter atanamaz.

 

Değişkenlerin Tanımlanması (Declaration) ve Değer Atanması (Initialization)

Öncelikle değişkenin tipi belirlenmelidir. Yani x isimli bir değişkenimiz varsa ve buna tamsayı bir değer atamak istiyorsak, x değişkenini tamsayı olarak tanımlamamız gerekir. Eğer x'e girilecek değer bir karakter veya virgüllü sayı olsaydı, değişken tipinin ona göre tanımlanması gerekecektir. Bir örnekle konuyu anlamaya çalışalım.

Örnek :
 

#include<stdio.h>
int main( void )
{
 int x;
 x = 15;
 printf("x sayısı %d",x);
 return 0;
}

 

 Örnekte ilk olarak int x ile değişkenimizin integer tipinde bir değişken olacağını belirliyoruz.Integer tipi değişkenimizin tamsayı tipinde olacağının ifadesidir. int x ile x isim değişkenimizin tamsayı tipinde olacağını belirtmiş oluyoruz. x=15 ise, x değişkenine 15 değerini atamak anlamına gelmektedir. Bu demek oluyorki artık x 15 sayısını taşımaktadır. Kodlamada x değişkenimizi programımızın neresinde kullanırsak kullanalım artık x'in değeri 15 olarak işleme alınacaktır. printf(); fonksiyonunun içerisine yazdığımız %d ise, ekranda tamsayı bir değişken değeri gözükecek anlamındadır. Çift tırnaktan sonra koyacağımız x değeri ise, görüntülenecek değişkenin x olduğunu belirtir. Burada dikkat etmemizi gereken husus çift tırnaktan sonra, virgül koyup sonra değişkenin adını yazdığımızdır.

 Temel olarak bir değişkeni tanımlamak için en önemli şart değişkenin adının ve tipinin öncelikli olarak belirlenmesidir. Değişken tanımlama ifadeleri mutlak surette (;) ile tamamlanmalıdır. Şimdi birlikte bir tanımlama örneği daha yapalım :

Örnek :
 

#include<stdio.h>
int main( void )
{
 int sayi;
 float ondalikSayi;
 char isim[30];
 double x;
        double y;  
return 0;
}

 

 Aynı tipe sahip birden fazla değişken kullanılacaksa  bunları örnekteki gibi alt alta  yazmak yerine tek bir satırda da tanımlayabiliriz. Örnekte tanımladığımız x,y değişkenleri aynı tipte olduğu için tek bir satırda virgülle (,) ayırarak tanımlayabiliriz.

 

double x, y;  

 

Birden fazla değişken kullanımında tüm değişkenlere aynı değeri atamak
 

int a,b,c;
a = b = c = 10;

 

 Örnekte a,b,c değişkenlerinin hepsine 10 değerini atadık. Toplu atamalarda dikkat edilmesi gereken tek husus değişkenlerin tipinin aynı olması zorunluluğudur.

Tanımlama Sonrası Değer Atama
 Değişkenlerimize tanımlama esnasında değer atama zorunlu değildir. Kodlamanın ilerleyen evrelerinde değer ataması yapılabilir. Bu tarz atama işlemleri kullanıcının değer girmesi gerektiği kod satırında faydalıdır. Dikkat edilecek nokta ise değişken tanımlanması değişkene değer atanmasından önce yapılmalıdır.

 

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {

        int x = 3, z = 4, t = 5, c = x, y = 3;
        //int x=3,z=4,t=x,y=3;

        y = z = x;

        y = t; //y degiskenin ici t degiskenin ici ile ayni degeri aliyor

        printf("x=%d y=%d z=%d t=%d", x, y, z, t);

    return (EXIT_SUCCESS);
}

 

Örnek :

#include<stdio.h>
int main( argc, char** argv )
{
//tanımlamada değer atama//
 int sayi = 5;

//tanımlama sonrası değer atama//
        int sayi;
        sayi = 5

//tanımlama sonrası değer atama//
        float ondalikSayi;
 ondalikSayi = 3.14;

//tanımlama sonrası değer atama//
        int deger;
        printf ("n deger giriniz");
        scanf ("%d", &deger);
        printf ("girilen deger:%d");
return 0;
}

C Programlama Değişkenler
Bir karakter dizisi değişmezi bellekte saklandığı zaman, dizinin sonuna otomatik olarak boş karakter (?) eklenir; bundan dolayı diziyi saklamak için kullanılan bayt sayısı dizinin uzunluğundan bir fazladı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.


 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:10
C Programlama Değişkenler

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:
Son 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:


C Programlama Değişkenler
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:
C Programlama Değişkenler
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 tipBÖLÜM 1
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 ayrılan
bellek miktarı ile alt ve üst limit değerleri şöyledir:
C Programlama Değişkenler

C Programlama Değişkenler
Not: 16 bitlik bilgisayarlarda veya derleyicilerde (signed veya unsigned) int 16 bittir; 32 bitliklerde ise 32 bittir.

 
#include <stdio.h>
#include <stdlib.h>

int main(void){
   
    /////////karakter///////////////
    char karakter1='A';
    char karakter2=34;
   
    //////////////tam sayilar//////////////
   
     //int sayi1=32.768; küsüratlı sayı kullanılamaz
     
    int sayi1=32768;
   
    unsigned int sayi2=666666666;
   
    short int sayi3=65236;
   
    unsigned short int sayi4=13010;
   
    long int sayi5=2305198322512599414;
   
    unsigned long int sayi6=-23051983225125994;
   
   
    ////////////ondalıklı sayılar
   
    float sayi7=35.12345678849445674;
   
    double sayi8=6629387.5034986790485769305876093485760985760943857609438760934876;
   
   
    return 0;
           
}