C Programlama Değişkenler

Değişkenler, programlarımızın değiştirebileceği bir depolama alanına verilen addan başka bir şey değildir. C’deki her değişkenin, değişkenin belleğinin boyutunu ve düzenini belirleyen belirli bir türü vardır; o bellekte saklanabilecek değer aralığı; ve değişkene uygulanabilecek işlemler kümesidir.

Bir değişkenin adı harflerden, rakamlardan ve alt çizgi karakterinden oluşabilir. Değişkenin adı bir harf veya alt çizgi ile başlamalıdır. C büyük/küçük harfe duyarlı olduğundan büyük ve küçük harfler farklıdır. Önceki bölümde açıklanan temel türlere bağlı olarak, aşağıdaki temel değişken türleri olacaktır:

Sr.No.Tür ve Açıklamalar
1char
Tek bir sekizli (bir bayt). Bir tamsayı türüdür.
2int
Makine için en doğal tam sayı boyutu.
3float
Tek duyarlıklı kayan nokta değeri.
4double
Çift duyarlıklı kayan nokta değeri.
5void
Türün yokluğunu temsil eder.
Değişkenler

C programlama dili ayrıca Enumeration, Pointer, Array, Structure, Union, vb. gibi sonraki bölümlerde ele alacağımız diğer değişken tiplerini tanımlamaya da izin verir. Bu bölüm için sadece temel değişken tiplerini inceleyeceğiz.

C’de Değişken Tanımlama

Değişken tanımı, derleyiciye değişken için nerede ve ne kadar depolama alanı oluşturacağını söyler. Değişken tanımı, bir veri türünü belirtir ve aşağıdaki gibi bu türden bir veya daha fazla değişkenin bir listesini içerir:

type variable_list;

Burada tür , char, w_char, int, float, double, bool veya herhangi bir kullanıcı tanımlı nesne dahil geçerli bir C veri türü olmalıdır; ve değişken_listesi virgülle ayrılmış bir veya daha fazla tanımlayıcı adından oluşabilir.

int    i, j, k;
char   c, ch;
float  f, devreyakan;
double d;

int i, j, k; satırı i, j ve k değişkenlerini bildirir ve tanımlar; bu, derleyiciye int türünde i, j ve k adlı değişkenler oluşturmasını söyler.

Değişkenler, bildirimlerinde başlatılabilir (bir başlangıç ​​değeri atanabilir). Başlatıcı, eşittir işaretinin ardından aşağıdaki gibi sabit bir ifadeden oluşur:

tip degisken_ismi = deger;

Bazı örnekler:

extern int d = 3, f = 5; 
int d = 3, f = 5;           
byte z = 22;                
char x = 'x';               

Başlatıcı olmadan tanımlama için: statik depolama süresine sahip değişkenler örtük olarak NULL ile başlatılır (tüm baytlar 0 değerine sahiptir); diğer tüm değişkenlerin başlangıç ​​değeri tanımsızdır.

C’de Değişken Bildirimi

Bir değişken bildirimi, derleyiciye, verilen tür ve ada sahip bir değişkenin bulunduğuna dair güvence sağlar, böylece derleyici, değişken hakkında tam ayrıntıya ihtiyaç duymadan derlemeye devam edebilir. Değişken tanımının anlamı yalnızca derleme sırasında vardır, derleyici programı bağlama anında gerçek değişken tanımına ihtiyaç duyar.

Değişken bildirimi, birden fazla dosya kullandığınızda kullanışlıdır ve değişkeninizi, programın bağlanması sırasında mevcut olacak dosyalardan birinde tanımlarsınız. Herhangi bir yerde bir değişken bildirmek için extern anahtar sözcüğünü kullanacaksınız. C programınızda bir değişkeni birden çok kez bildirebilmenize rağmen, bir dosyada, bir işlevde veya bir kod bloğunda yalnızca bir kez tanımlanabilir.

Hatırlatma

Bir kaynak dosya içinde tanımlanan bir değişkene ya da işleve, yalnızca tanımlandığı kaynak dosya içinde değil, projeyi oluşturan diğer kaynak dosyalarda da erişilebiliyorsa, nesne ya da işlevin dış bağlantısı “external linkage” vardır denir. Bir kaynak dosya içinde tanımlanan bir değişkene ya da işleve, yalnızca tanımlandığı kaynak dosya içinde erişilebiliyorsa, projeyi oluşturan diğer kaynak dosyalarda erişilemiyorsa, nesne ya da işlevin iç bağlantısı “internal linkage” vardır denir. extern anahtar kelimesi derleyiciye değişkenin dışarıda tanımlandığını bildirmek için kullanılan bir keyword’tür. Compiler extern keyword’unu gördüğünde değişken için alan tahsisinde bulunmaz.

Örnek

Değişkenlerin en üstte bildirildiği, ancak ana işlev içinde tanımlanıp başlatıldığı aşağıdaki örneği deneyin:

#include <stdio.h>

// değişken bildirimi:
extern int a, b;
extern int c;
extern float f;

int main () {

   /* değişken tanımlama */
   int a, b;
   int c;
   float f;
 
   /* gerçek başlatma */
   a = 10;
   b = 20;
  
   c = a + b;
   printf("c'nin değeri : %d \n", c);

   f = 70.0/3.0;
   printf("f'nin değeri : %f \n", f);
 
   return 0;
}

Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu üretir:

c'nin değeri : 30
f'nin değeri : 23.333334

Aynı kavram, bildirimi sırasında bir işlev adı sağladığınız ve gerçek tanımının başka herhangi bir yerde verilebildiği işlev bildirimi için de geçerlidir.

// fonksiyonun tanımlanması
int func();

int main() {

   // fonksiyonun çağrılması
   int i = func();
}

// fonksiyonu tanımı
int func() {
   return 0;
}

C’de Lvalue ve Rvalue Değerleri

C’de iki tür ifade vardır:

Lvalue: Bir bellek konumuna atıfta bulunan ifadelere “lvalue” ifadeleri denir. Bir değer, bir atamanın sol veya sağ tarafı olarak görünebilir.

Rvalue: “rvalue” terimi, bellekteki bazı adreslerde saklanan bir veri değerini ifade eder. Değer, kendisine atanmış bir değere sahip olamayacak bir ifadedir; bu, bir değerin bir atamanın sağ tarafında görünebileceği ancak sol tarafında görünmeyebileceği anlamına gelir.

Değişkenler değerlerdir ve bu nedenle bir atamanın sol tarafında görünebilirler. Sayısal değişmezler değerlerdir ve bu nedenle atanamazlar ve sol tarafta görünemezler. Aşağıdaki geçerli ve geçersiz ifadelere bir göz atın:

int g = 20; // geçerli tanımlama

10 = 20; // geçersiz tanımlama, derleme sırasında sorunlar yaratabilir

Bir sonraki yazımızda, Sabitler ve Değişmezler konusunu inceleyeceğiz.