Ararım seni her yerde...

Operatörler

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örAçıklamaÖrnekAnlamı
+toplamax + yx ve y nin toplamı
-çıkarmax - yx ve y nin farkı
*carpmax * yx ve y nin çarpımı
/bölmex / yx ve y nin oranı
%artık bölmex % yx / 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örAçıklamaÖrnekAnlamı
=atamax = 7;x = 7;
+=ekleyerek atamax += 3x = x + 3
-=eksilterek atamax -= 5x = x - 5
*=çarparak atamax *= 4x = x * 4
/=bölerek atamax /= 2x = x / 2
%=bölüp, kalanını atamax %= 9x = x % 9
++bir arttırmax++ veya ++xx = x + 1
--bir azaltmax-- veya --xx = 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.

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.

Hiç yorum yok:

Yorum Gönder