30 Aralık 2015 Çarşamba

Sizeof Operatörü

Sizeof Operatörü


Sizeof Operatörünün incelenmesi ve sizeof operatörünün kullanım şekilleri incelendi. Basit bir uygulama gerçeklendi.
/*Açıklama : sizeof operatörü incelenmesi.
 * sizeof operatörü derleme zamanında terim olarak verilen ifadenin
 * bellekte kapladığı byte miktarını verir.
 * sizeof fonksiyon değil bir operatördür.
 * sizeof derleme zamanı çalıştırılır. runtime da değil.
 * sizeof verilen terimin bellekte kaç byte yer kapladığını verir.
 * size_t tipinden bir değer döner. size_t = unsigned int
 */

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

#define      ARRAY_LENGTH(array)        sizeof(array)/sizeof(array[0])

int main(void) {
       /* sizeof fonksiyon değil bir operatördür.
        * sizeof derleme zamanı çalıştırılır. runtime da değil.
        * sizeof verilen terimin bellekte kaç byte yer kapladığını verir.
        * size_t tipinden bir değer döner. size_t = unsigned int
        */
      
       /*{
             int a;
             int array[] = {1,2,3,4,5,6,7,8,9,10};
             1. sizeof(int) // 4
             2. sizeof(a); // 4
             3. sizeof(array) //40

       }*/

       //sizeof kullanım çeşitleri
       {
             double a = 10;
             int array[10]; //10*4 = 40
             printf("int boyutu :%d\n", sizeof(int));
             printf("a nin boyutu: %d\n", sizeof(a));
             printf("array dizisinin boyutu:%d\n", sizeof(array));

       }
       //sizeof'un ürettiği değer unsigned int
       {
             int total = -2 * (int)sizeof(double);
             printf("total = %d\n", total);
       }
       //sizeof fonksiyonla kullanılması
       {
             printf("main fonksionun bellekteki byte=%d\n", sizeof(main()));
       }

       //sizeof operatörü sabit bir değer üretir. derleme zamanı
       {
             char array[sizeof(double)];
             printf("array bytes = %d\n", sizeof(array));
       }
       //sizeof ile dizi uzunlugu hesaplama
       {
             int i=0;
             int array[] = {1,2,3,4,5,6,7,8,9,11,12,1,2,3,4,5,6,7,8,9,11,12};
             printf("array byte uzunlugu = %d\n", sizeof(array));
             printf("array eleman uzunlugu = %d\n", sizeof(array[0]));
             int length = ARRAY_LENGTH(array);//sizeof(array) / sizeof(array[0]);
             printf("dizi uzunlugu =%d\n", length);

             for(i = 0; i < length; ++i)
             {
                    printf("%d.indisli eleman = %d\n", i, array[i]);
             }

       }

       return EXIT_SUCCESS;
}

 Konu ile ilgili ayrıntılı video izlemek için tıklayınız.

Hiç yorum yok:

Yorum Gönder