Ana sayfa > Programlama > C Programlama > Değişkenler

Değişkenler

► Detaylı anlatım      ► Video anlatım

C dilinde bilgisayar belleğinin bir kısmına belirli bir isim vererek (değişken bildirimi veya tanımlama) bu alana değerler yerleştirebiliriz (değişkene değer atama).

C programlama dilinde bir değişken ifade içinde kullanılmadan önce mutlaka bildirimi yapılmalı ve bir değer atanmalıdır. Bu bildirim işlemi, ister main() ister başka bir fonksiyon içinde olsun mutlaka fonksiyonun veya kod bloğunun başında yapılmalıdır.

Ancak, C99 standartlarına göre, bir fonksiyon içindeki yerel değişken bildirimi fonksiyonun veya fonksiyon içinde yer alan bir kod bloğu içinde herhangi bir yerde yapılabilir.

Bir değişken bildirimi aşağıdaki gösterildiği şekildeyapılır:

veri-türü değişken-adı;

Değişken bildirimi bir işlem satırı ile yapıldığından, noktalı virgül (;) ile sona erer. veri-türü ifadesi bildirimi yapılan değişkeninin veri türünü, değişken-adı ifadesi ise değişkenin adını göstermektedir.

Değişken bildiriminde değişken-adı ifadesi yerine kullanılacak değişken adları, sizin verebileceğiniz herhangi bir ad olabilir. Bu ad harflerden, rakamlardan ve (_) işaretinden oluşan bir karakter dizisi olmalıdır. C küçük ve büyük harflere farklı işlem yapar. VAR1 ve var1 olarak verilen değişken adları birbirinden tamamen farklı olarak kabul edilir.

Aşağıdaki işlem satırlarından birincisi id1 adlı int ve ikincisi fd1 adlı float bir değişken bildirimi yapar:


int id;
float fd;
double dd;

Değişken bildirimini fonksiyonların yada kod bloklarının başında yapılırsa, bu değişkenlere "lokal değişken", bütün fonksiyonların dışında ve kaynak dosyamızın başında yapılırsa bu değişkenlere "global değişken" adı verilir.

Ayrıca, fonksiyonlara değer aktarma işlemi için kullanılan değişkenlere "fonksiyon parametre değişkenleri" adı verilir.

Lokal değişkenler sadece tanımlanmış olduğu fonksiyonlar içinde geçerlidir ve sadece içinde tanımlandığı fonksiyon çalıştığı sürece geçerlidir. Bir fonksiyon programın herhangi bir yerinden çağrıldığında, çağrılan fonksiyonun içindeki lokal değişkenler oluşturulur ve fonksiyonun son işlem satırına işlem yapıldıktan sonra yok edilirler.

Fonksiyon parametre değişkenleri fonksiyon lokal değişkenleri ile aynı özelliklere sahiptir. Tek farkları fonksiyona geçirilen değerlerin bu değişkenlere aktarılmasıdır.

Global değişkenler main() fonksiyonu da dahil olmak üzere bütün fonksiyonlar içinde geçerlidir. Bu değişkenlere, main() fonksiyonu veya diğer fonksiyonların işlem satırından herhangi bir işlem yapabiliriz. Global değişkenler kaynak dosyamızın başında tanımlandığından, programın çalışması sona erene kadar varlıklarını sürdürürler.

Bir değişken bildirimi ile yapılan ilk değer atama işlemi aşağıdaki şekilde yapılır:

veri-türü değişken-adı = sabit;


int id = 1354;

Global bir değişkene bir ilk değer atamazsak, değişken sıfır (0) değerini alır. Lokal bir değişkene bir ilk değer atamazsak, değişken anlamsız bir değer alır.


#include <stdio.h>

int gid1; /* İlk değer atanmadığından değeri 0 olur. */
int gid2 = 128;

void fonk(int id); /* Fonksiyon bildirimi */

int main(void)
{
  int id1;
  int id2 = 21;
  id1 = 5;

  printf("id1 değişken değeri: %d\n", id1);
  printf("id2 değişken değeri: %d\n", id2); 

  fonk(7);
  
  return 0;
}

void fonk(int id) /* Fonksiyon parametre değişkeni */
{
  /* Değişkenler global olduğundan fonksiyon içinden erişim sağlanır. */
  printf("gid1 değişken değeri: %d\n", gid1);
  printf("gid2 değişken değeri: %d\n", gid2);
  
  printf("%d sayısının karesi: %d", id, id*id);
}

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

id1 değişken değeri: 5
id2 değişken değeri: 21
gid1 değişken değeri: 0
gid2 değişken değeri: 128
7 sayısının karesi: 49