C Programlama Dili'ne Giriş

  Dersler
* Önsöz

* Giriş
* Veri Tipleri, Değişkenler
* Operatörler
* Temel G/Ç Fonksiyonları
* Temel Kütüphane Fonksiyonları
* Karşılaştırma Deyimleri
* Döngüler
* Fonksiyonlar I
* Fonksiyonlar II
* Diziler
* Gösterici (Pointer) Kavramı
* Katarlar (Stringler)
* Dinamik Bellek Yönetimi
* Gösterici Uygulamaları
* Yapılar ve Birlikler
* Dosya Yönetimi
* Bit Düzeyinde Çalışmak
* Port Denetimi
* Grafik Kullanımı
* C Makroları

* Kısaca C++
* Derleme Seçenekleri
* Tarih-Saat Fonksiyonları
* Monte-Carlo Yöntemleri
* Fortran ve C

* Yararlanılan Kaynaklar

  C/C++ Derleyicileri
* Dev-C++
* Salford (silversoft FTN95)
* GCC
* Turbo C
* Eclipse IDE
* NetBeans IDE

  Dış Bağlantılar
* programlama.com
* C Programcıları Derneği

* C (wikipedia)
* C++ (wikipedia)
* cplusplus.com
* koders.com
* Hot scripts

 

Ders 3: Operatörler

###################- (%95)

En son güncelleme: Wed, 30 Nov 2011 13:22:02 +0200

Giriş

Operatörler, değişkenler veya sabitler üzerinde matematiksel ve karşılaştırma işlemlerini yapan simgelerdir. Yani bir operatör bir veya daha fazla nesne (değişken) üzerinde işlem yapan sembollerdir. Bu kısımdam aritmetik operatörler, atama operatörleri ve sizeof operatörü anlatıcaktır. Karşılaştırma Operatörleri, Mantıksal Operatörler ve Bit Düzeyinde işlem yapan operatörler daha sonraki bölümlerde incelenektir.


3.1   Aritmetik Operatörler

Değişken veya sabitler üzerinde temel aritmetik işlemleri gerçekleyen operatörlerdir. Bunlar Tablo 3.1'de listelenmiştir.

Tablo 3.1: Aritmetik Operatörler

Operatör Açıklama Örnek Anlamı
+ toplama x + y x ve y nin toplamı
- çıkarma x - y x ve y nin farkı
* carpma x * y x ve y nin çarpımı
/ bölme x / y x ve y nin oranı
% artık bölme x % y x / y den kalan sayı

3.2   Atama Operatörleri

Bu operatörler bir değişkene, bir sabit vaya bir aritmetik ifade atamak (eşitlemek) için kullanılır.
Birleşik atama: bazı ifadelerde işlem operatörü ile atama operatörü birlikte kullanılarak, ifadeler daha kısa yazılabilir. Eğer ifade

          değişken = değişken [operatör] aritmetik ifade;

şeklinde ise, daha kısa bir biçimde

          değişken [operatör]= aritmetik ifade;

olarak yazılabilir. Bu operatörler Tablo 3.2'de listelenmiştir.

Tablo 3.2: Atama Operatörleri

Operatör Açıklama Örnek Anlamı
= atama x = 7; x = 7;
+= ekleyerek atama x += 3 x = x + 3
-= eksilterek atama x -= 5 x = x - 5
*= çarparak atama x *= 4 x = x * 4
/= bölerek atama x /= 2 x = x / 2
%= bölüp, kalanını atama x %= 9 x = x % 9
++ bir arttırma x++ veya ++x x = x + 1
-- bir azaltma x-- veya --x x = x - 1

Bu tanımlamalara göre, aşağıdaki atamaları inceleyiniz:

     /* bir arttırma işlemleri */
     i++;
     ++i;
     i += 1;
     i = i + 1;


     /* karmaşık atamalar */
     f *= i;      // f = f * i; anlamında
     f *= i+1;    // f = f * (i+1); anlamında
     z /= 1 + x;  // z = z / (1+x); anlamında

Bir arttırma veya eksiltme operatörlerini kullanırken dikkatli olunmalıdır. Çünkü aşağıdaki türden atamalar bazen karışıklığa neden olur.

     a = 5;    // a = 5
     b = a++;  // a = 6 ve b = 5
     c = ++a;  // a = 7 ve c = 7

Program 3.1: Aritmetik ve atama operatörlerinin kullanımı
01: 
02: 
03: 
04: 
05: 
06: 
07: 
08: 
09: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
/* 03prg01.c: Aritmetik ve atama operatorlerinin kullanimi */

#include <stdio.h>


main()
{
    int x, y;  /* yerel degikenlerin bildirimi */

    x = 1;   /*  x in baslangic degeri  */
    y = 3;   /*  y nin baslangic degeri */

    printf(" x = %d ve y = %d, olarak veriliyor.\n", x, y);

    x = x + y;
    printf("x <- x + y  atamsinin sonucunda x=%d dir\n", x);

    x = 1;  /* x e tekrar 1 degeri ataniyor */
    x += y;
    printf("x += y  atamasinin sonucunda x=%d dir\n", x);

 return 0;
}

ÇIKTI

x = 1 ve y = 3, olarak veriliyor.
x <- x + y  atamasinin sonucunda x=4 dir
x += y  atamasinin sonucunda x=4 dir


3.3   sizeof Operatörü

Veri tiplerinin, değişkenlerin ve dizilerin bellekte kapladığı alan sizeof operatörü ile öğrenilebilir. Genel kullanımı:

     sizeof(nesne)

şeklindedir. Program 3.2'de bu operatörün nasıl kullanıldığı gösterilmiştir. Ayrıca bkz: Program 2.1 ve Bölüm 10, Bölüm 12.

Program 3.2: sizeof operatörün kullanımı
01: 
02: 
03: 
04: 
05: 
06: 
07: 
08: 
09: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
/* 03prg02.c
   sizeof operatörünün değişik nesnelerle kullanımı */

#include <stdio.h>

int main(){

   int    i;              /* bir tamsayı */
   int    dizi[5];        /* 5 elemanlı bir tamsayı dizi */

   double d;              /* bir gercel sayı */
   double mizan[6];       /* 6 elemanlı bir gercel dizi */

   char   c;              /* tek bir karakter */
   char   str[] = "masa"; /* bir karakter topluluğu */ 


   printf("sizeof(int)   = %d\n",sizeof(int));
   printf("sizeof(i)     = %d\n",sizeof(i));
   printf("sizeof(dizi)  = %d\n\n",sizeof(dizi));

   printf("sizeof(double)= %d\n",sizeof(double));
   printf("sizeof(d)     = %d\n",sizeof(d));
   printf("sizeof(mizan) = %d\n\n",sizeof(mizan));

   printf("sizeof(char)  = %d\n",sizeof(char));
   printf("sizeof(c)     = %d\n",sizeof(c));
   printf("sizeof(str)   = %d\n",sizeof(str));

return 0;
}

ÇIKTI

sizeof(int)   = 4
sizeof(i)     = 4
sizeof(dizi)  = 20

sizeof(double)= 8
sizeof(d)     = 8
sizeof(mizan) = 48

sizeof(char)  = 1
sizeof(c)     = 1
sizeof(str)   = 5

Programda sizeof(int) değeri ile sizeof(i) değerinin aynı olduğu görülür. dizinin boyutu 5 olduğu için, sizeof(dizi) = sizeof(int)*5 = 20 şeklinde hesaplanmaktadır. Diğerleri için benzer durum söz konusu. Ancak, str 4 elemanlı bir dizi olduğu halde sizeof(str) = 5 dir. Neden? Bunu ilerideki bölümlerde öğreneceğiz.



Powered by PHP